完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
开发环境 cubemx V5.5.0 + MDK Keil V5.29.0.0 + STM32F429NIH 在main.c添加代码(1/2) 在main函数中,初始化uart后执行 __HAL_UART_ENABLE_IT(&huart1,UART_IT_RXNE); 用来使能中断。前提是已经在cube中配置好了uart1的串口接收中断。 做完这一步就能进 USART1_IRQHandler() 中断了,但只能进一次。debug中查看外设发现存在中断标志位清除的问题。 在stm32f4xx_it.c添加代码(2/2) 在 USART1_IRQHandler() 中断函数最后两行添加代码 __HAL_UART_ENABLE_IT(&huart1,UART_IT_ERR); __HAL_UART_ENABLE_IT(&huart1,UART_IT_RXNE); 即可按字节进 USART1_IRQHandler() 中断了。 注意 这个方法没有采用hal库冗余的中断处理和回调函数,所以不和涉及串口接收函数的其他部分,如 HAL_UART_IRQHandler(&huart1); 等打交道。只要添加上述三行代码,就可以让串口接收中断回到库函数时代。 附代码 /** * @brief This function handles USART1 global interrupt. */ void USART1_IRQHandler(void) { /* USER CODE BEGIN USART1_IRQn 0 */ uint8_t temp; if(USART1->SR & 0x00000020){ temp = USART1->DR; RX_BUFF[RX_CNT++] = temp; if(temp==0x0d)console_setflag(); } /* USER CODE END USART1_IRQn 0 */ HAL_UART_IRQHandler(&huart1); /* USER CODE BEGIN USART1_IRQn 1 */ __HAL_UART_ENABLE_IT(&huart1,UART_IT_ERR); __HAL_UART_ENABLE_IT(&huart1,UART_IT_RXNE); /* USER CODE END USART1_IRQn 1 */ } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1614 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1541 浏览 1 评论
970 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
682 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1592 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 23:08 , Processed in 0.692277 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号