你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
captainliuy 发表于 2015-6-3 18:09 串口是双工的,可以接收也可以发送,但是处理器处理可不是双工的,发送的时候,如果进来2个以上的数据自然 ...
意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器
我现在正好遇到超过接收两个以上字节的数据就会出现这个问题,不明白原因,请大侠指教
a.接收到一个数据完成 串口进入中断 将数据从 串口数据寄存器搬运到指定的内存BUF里面,这个步骤需要进入HAL_UART_IRQHandler(&huart2);中完成数据处理。
b.进入串口打印数据,串口打印调用的是UART_Transmit_IT(huart); 这个函数也是需要调用HAL_UART_IRQHandler(&huart2);进行数据处理从内存BUF里面帮运到串口发送数据寄存器中间。
c.如果当串口正在进行数据打印的时候进来第二个数的时候就会卡在数据寄存器等待。
d.但是当串口发送数据完成以后会继续把串口接收数据寄存器的数据接收到内存BUF中间,但是这个过程已经存在串口接收数据溢出中断(overrun溢出中断)。
我是这样分析对吗??求指教