首页 > 其他分享 >STM23学习记录2:外部中断,串口通信,定时器

STM23学习记录2:外部中断,串口通信,定时器

时间:2023-08-23 20:45:15浏览次数:42  
标签:定时器 USART NVIC STM23 InitStructure Mode 串口 GPIO USART1

外部中断:

向量表:异常+中断

所有端口的PIN0对应着EXTI0中短线,PIN1对应EXTI1中断线,依次类推

16个外部中断线,对应7个外部中断入口地址

配置中断优先级的4位要同时完成抢占优先级和响应优先级(子优先级或副优先级)的配置:两组优先级

2+2,2^2抢占,2^2响应比较常用

使用NVIC_PriorityGroupConfig(NVIC_PriorityGroup_X)来设定

 

串口通信:

USART1_IRQHandler(void) 串口中断服务程序

 


void Serial_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);

USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_Init(USART1, &USART_InitStructure);

USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_Init(&NVIC_InitStructure);

USART_Cmd(USART1, ENABLE);
}

 

 

 

1 void USART1_IRQHandler(void)
2 {
3     if (USART_GetITStatus(USART1, USART_IT_RXNE) == SET)
4     {
5         Serial_RxData = USART_ReceiveData(USART1);
6         Serial_RxFlag = 1;
7         USART_ClearITPendingBit(USART1, USART_IT_RXNE);
8     }
9 }

 

定时器:计数频率,计数个数

 

看门狗:

窗口看门狗:采用系统时钟,监控软件的运行异常

独立看门狗:通过一个12bit的计数器对设定频率减计数,采用独立时钟,监控芯片异常

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

标签:定时器,USART,NVIC,STM23,InitStructure,Mode,串口,GPIO,USART1
From: https://www.cnblogs.com/ustc2122zy/p/17636372.html

相关文章

  • 字符串口胡记录
    [NOIP2020]字符串匹配枚举两个分界点并检查是否合法的暴力很显然,考虑优化。字符串只会哈希可以想到用哈希优化比较复杂度,具体来说,只用枚举\(AB\)的长度\(len\),然后每次暴力往后跳用哈希检查往下\(len\)个字符并更新答案,直到它们与\(AB\)不同。同时考虑如何统计\(f(A)\leqf(C......
  • 串口助手
    https://github.com/cry1109/NbCommhttps://www.vofa.plus/docs/learning/start/quick_startJscope你买盗版jlink用hss模式也能干到1khz,串口压根达不到这个速度。......
  • 定时器之编码器接口
    实现对正交(相位相差90°)编码器自动计次 这个编码器接口。其实就相当于是一个带有方向控制的外部时钟它同时控制着CNT的计数时钟和计数方向每隔一段事件计数并清零,就可以得到其速度正交信号精度高,可以抗噪声(一个引脚不变,另外引脚毛刺的话,计数的值会+1-1循环,而保持不变) ......
  • 定时器之输入捕获
    同一个定时器,输入捕获和输出比较只能使用一个 检测到电平跳变,执行后面的动作。当前CNT的值,锁存到CCR寄存器中   高频使用测频法,低频使用测周法,分界值呢?使用中界频率区分 测频法实现逻辑:每来一个上升沿记一次X+=1,  使用定时器定时1S,到时间统计这个X值,就是频率,同......
  • 定时器
      基本定时器,只能使用内部时钟 时基单元包括:PSC预分频器、CNT计数器、自动重装寄存器 当PSC=0时不分频,还是72MHz;当PSC=1时就是2分频,等于72/2=36MHz   16位 CNT计数器对分频后的脉冲计数,通过上升沿+1   16位,//当值增加到65535后再增加就清零,触发中断,运......
  • 10 JavaScrit定时器
    10JavaScrit定时器在JS中,有两种设置定时器的方案://语法规则t=setTimeout(函数,时间) //经过xxx时间后,执行xxx函数//5秒后打印我爱你t=setTimeout(function(){console.log("我爱你")},5);window.clearTimeout(t)//停止一个定时器//语法规则t=se......
  • 立式门禁软件定时器问题
    论坛文章:文章1文章2注意:rttgpio驱动有问题,使用时注意啦......
  • 《串口篇》实现模拟串口通信(未验证)
    实现串口通信参考链接:https://www.jb51.net/article/279177.htm新建项目出于简单考虑,首先创建一个Winform项目,本文项目名称为portTest。串口通信,至少有两个串口才能通信,所以拖动两个GroupBox,一左一右,里面分别放置一个Combobox、一个按钮,以及两个TextBox用于发送和接收内容,第二......
  • 《串口篇》实现串口通信
    实现串口通信参考链接:jb51.net/article/237854.htm本文实例为大家分享了C#实现串口通信的具体代码,供大家参考,具体内容如下基本概念前端效果使用winform代码实现如下点击查看代码namespaceSerialPortTest {   publicpartialclassForm1:Form   {......
  • CH32V003的系统定时器SysTick
    在CH32V003内部有一个特殊的定时器——系统定时器(SysTick),它位于青稞V2微处理内核里面,是RISC-V内核的一个组成部分,主要用来给操作系统提供时间片轮转的定时,一般固定为10ms的定时,所以中文也称它为“嘀嗒”定时器(也称“心跳”定时器)。在不跑操作系统时,可以把它当作普通定时器来使用,一......