gd32 串口进入USART_INT_FLAG_ERR_ORERR中断,请问这是什么原因造成的?
时间: 2023-09-15 09:20:21 浏览: 111
USART_INT_FLAG_ERR_ORERR中断表示串口出现了溢出错误,这通常是由于接收数据的速度太慢导致缓冲区溢出引起的。你需要检查以下几个方面:
1. 检查串口接收数据的速度是否与发送数据的速度相匹配。如果发送数据的速度比接收数据的速度快,就有可能导致缓冲区溢出。
2. 检查串口缓冲区的大小是否足够。如果缓冲区大小不够,就容易出现缓冲区溢出。
3. 检查串口中断是否正确配置。如果串口中断配置不正确,也有可能导致缓冲区溢出。
4. 检查代码实现是否存在 bug。例如,可能存在某些情况下,没有及时清空串口缓冲区或者错误处理缓冲区溢出的情况。
通过以上的检查,你应该能找到造成USART_INT_FLAG_ERR_ORERR中断的原因。
相关问题
USART_INT_FLAG_RBNE
USART_INT_FLAG_RBNE是USART(通用同步/异步收发器)的接收缓冲区非空中断标志位。当USART接收缓冲区中有数据时,该标志位会被置位,表示接收到了新的数据。
USART是一种串行通信接口,常用于将数据从一个设备传输到另一个设备。USART_INT_FLAG_RBNE是USART的一个中断标志位,用于指示接收缓冲区是否有新的数据可供读取。
当USART接收到数据后,它会将数据存储在接收缓冲区中,并置位USART_INT_FLAG_RBNE标志位。通过检查该标志位的状态,可以判断是否有新的数据可供处理。
usart_interrupt_flag_get(UART3, USART_INT_FLAG_TBE) != RESET
这段代码中没有找到usart_interrupt_flag_get(UART3, USART_INT_FLAG_TBE) != RESET的引用。请确认是否提供了正确的引用内容。
#### 引用[.reference_title]
- *1* [GD32 Usart配置与重定义fputc](https://blog.csdn.net/cftchaoxiaoshu/article/details/122702216)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [RISC-V_GD32VF103-USART 串口中断接收 printf发送](https://blog.csdn.net/qq_43588817/article/details/110007729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]