完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用STM32F1做串口通信测试,想试一下在921600波特率下通信是否稳定,stm32cubemx自动生成代码,开启了两个中断,一个定时器tim2(每1ms中断1次),一个Usart1中断(在中断里面把接收到的1个字符发送出去)。没有启动Tim2中断前,串口能随时发随时收。
void USART1_IRQHandler(void) { /* USER CODE BEGIN USART1_IRQn 0 */ uint8_t ch[2]; /* USER CODE END USART1_IRQn 0 */ HAL_UART_IRQHandler( huart1); /* USER CODE BEGIN USART1_IRQn 1 */ HAL_UART_Receive( huart1,ch,1,100); HAL_UART_Transmit( huart1,ch,1,100); __HAL_UART_CLEAR_FLAG( huart1,UART_FLAG_RXNE); /* USER CODE END USART1_IRQn 1 */ } 主程序啥也不干,空转。 使用了Tim2中断,并且在Tim2里面设置断点,暂停一下,串口就不能接受数据了,再也进不了接收中断。查看寄存器状态,应该是串口连续接收到数据,未能及时响应,造成了ORE故障。所以,只要开启多个中断,串口接收处理不及时,都会产生ORE错误。 请教大家,我是不是在主程序里需要加入ORE故障判断并清除的代码?看了那么多代码,没有见到谁的主程序有判断ORE的代码,也没见人提到过,各位专家是怎么解决的,敬请指教。 |
|
相关推荐
2个回答
|
|
在CSDN找到一个清除方法,但不好使
__HAL_UART_CLEAR_FLAG( huart1, UART_FLAG_PE);//清标志 __HAL_UART_CLEAR_FLAG( huart1, UART_FLAG_FE); __HAL_UART_CLEAR_FLAG( huart1, UART_FLAG_NE); __HAL_UART_CLEAR_FLAG( huart1, UART_FLAG_ORE); |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1921 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1688 浏览 1 评论
1179 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
774 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1738 浏览 2 评论
1980浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
815浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
262浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
629浏览 3评论
637浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-28 05:42 , Processed in 0.809347 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号