void USART1_IQHandler(void)
{
uint8_t ch;
if(USRAT_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
ch = USART_ReceiveData(USART1);
printf( "%c", ch ); //把收到的数据直接输出
}
}
问题1:USRAT_GetITStatus(USART1, USART_IT_RXNE) != RESET 这句是什么意思能讲详细些吗?
问题2:_IQHandler是什么啊?
问题3:USART_ReceiveData(USART1);是什么呢?
能帮我解析下下面一段STM32中断服务程序吗?
答案:2 悬赏:60 手机版
解决时间 2021-02-12 01:52
- 提问者网友:雨不眠的下
- 2021-02-11 02:48
最佳答案
- 五星知识达人网友:酒者煙囻
- 2021-02-11 03:25
你这个问题真的是很小白!来给你扫扫盲,
USRAT_GetITStatus(USART1, USART_IT_RXNE) != RESET 这个是判断是否发生了接收中断!
_IQHandler在stm32里面中断程序一般都以这个结尾。
USART_ReceiveData(USART1);这是一个函数,具体什么意思要去定义的地方看!
希望对你有用!
USRAT_GetITStatus(USART1, USART_IT_RXNE) != RESET 这个是判断是否发生了接收中断!
_IQHandler在stm32里面中断程序一般都以这个结尾。
USART_ReceiveData(USART1);这是一个函数,具体什么意思要去定义的地方看!
希望对你有用!
全部回答
- 1楼网友:迷人又混蛋
- 2021-02-11 03:59
nvic_prioritygroupconfig(nvic_proioritygroup_1);//把应用程序中断复位控制寄存器的10-8位设位1,表示1位抢断优先级,3位表示子优先级
nvic_initstructure.nvic_irqchannelpreemptionpriority = 0;此处只能为0或1,因为1位来表示
nvic_initstructure.nvic_irqchannelsubpriority = 2;此处可以是0-7,因为是3位表示
把tim_irqchanne的抢断优先级设为0,子优先级设为2,数字越小优先级越高,抢断优先级可以打断其他的中断,而子优先级不能
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯