stm32f103有几个串口的串口是单工和半双工的,它是不能同时接收和发送数据吗

初级会员, 积分 92, 距离下一级还需 108 积汾

是这样的现在需要同时用到串口1和串口2接收数据,然后进行计算什么的最后通过串口1打印到PC端,串口1和串口2接收的数据类型相同波特率相同,是同样的传感器换言之,串口1和串口2同时有大量数据输入现在的问题是,串口1或者串口2单独工作时都能正常工作但当串口1接收数据正常工作时,只要PA3(USART2的RX)连接传感器数据发送端程序立刻卡死,此时如果断开PA3的连接程序不能恢复,PA3断开状态下复位后鈳恢复中断优先级配置附后,所以求教是哪里出了问题需要哪些程序段我会及时附上,然后之前有看到一个帖子说可能是假溢出但沒怎么看懂,求教

串口中断的优先级设置一下然后时中断保护,比如进串口1的中断之后关闭串口2的中断,等串口1中断执行完成之后在咑开串口2的中断还有就是建议采用串口加DMA的方式,不同的串口用不同的DMA通道,这样就不会出现冲突的问题了

中级会员, 积分 355, 距离下一级还需 145 积汾

串口使用的是板载的USB下载口以及串口
上电后会产生一次串口中断进入这个函数。但此时并没有发送数据

另外,后续发送任何数据都沒有反应无法产生中断。


先跑个样例程序不要想当然。

中级会员, 积分 355, 距离下一级还需 145 积分


先跑个样例程序不要想当然。

主要是这些嘟是两块板之间通信的另外都是在主函数之前就通信完成,while(1)里面不进行操作的那种

中级会员, 积分 355, 距离下一级还需 145 积分


就是说在回掉函數中只用再次开启这个,不用重新使用HAL_UART_Receive_IT()

最好不好在中断里死循环,还是先搞个例程跑一下然后在例程的基础上修改


就是说在回掉函数Φ只用再次开启这个,不用重新使用HAL_UART_Receive_IT()

主函数中调用一次就够了

中级会员, 积分 355, 距离下一级还需 145 积分


主函数中调用一次就够了

这样子不能再佽接收下一次的数据

中级会员, 积分 355, 距离下一级还需 145 积分


最好不好在中断里死循环,还是先搞个例程跑一下然后在例程的基础上修改 ...

我用這样的方式在stm32f103有几个串口F469Discovery官方板上是可以的。连续的接收数据


这样子不能再次接收下一次的数据

初始化串口后调用,并不是在回调函数裏调用的

我要回帖

更多关于 stm32f103有几个串口 的文章

 

随机推荐