stm32f407串口通讯问题
stm32f407采用USART1口,向上位机持续发出数据,1秒钟发送20~40帧,每帧46个字节(这个发送没有问题),接收数据为中断接收。上位机向STM32发送数据,stm32f407接收到的数据10次有3,4次是接收不全的,上位机发送的数据没有问题,接收中断接收的数是少的。
后来再换别的方式测试,将STM32F407的发送,在定时器中断里发送和在while循环里发送,甚至采用了DMA发送,接收中断接收到上位机发下来的数据还是有不全的时候,一般不全的时候接收到的数据基本就1个字节。
如果stm32f407不持续向上位机发送数据,那么接收中断接收到的数据是没有问题的,完全可以正常接收。
谁能分析下是哪里的问题。
楼主用户的时什么方式发送的。建议使用串口中断方式发送。 安 发表于 2019-7-9 11:42
楼主用户的时什么方式发送的。建议使用串口中断方式发送。
就是库函数发送,我发送没有问题,上位机接收的都完整,主要是上位机给STM32发数,STM32的USART的接收不完整。 我的问题是在USART的接收上,如果一直在发数,那么接收到的数据就会不完整。 如果发送一直占用着端口,接收会受影响的。用中断的方式,互不影响的情况下进行数据传输。 安 发表于 2019-7-9 15:24
如果发送一直占用着端口,接收会受影响的。用中断的方式,互不影响的情况下进行数据传输。 ...
这不是全双工的串口吗? 有可能程序什么问题也没有,就是你用的USB转串口太垃圾。比如pl2303 楼主看看是不是用的老版本的库,进入接收和发送函数时判断的是同一个状态 huart->State。隐约记得好像是会引起。建议你用新版库试试:):)。其实软件调试一下也能发现原因:):) 先用轮询进行测试 yzzhh18 发表于 2019-7-10 10:17
有可能程序什么问题也没有,就是你用的USB转串口太垃圾。比如pl2303
外部监测STM32串口接收引脚的数据没有问题,就是串口收不全
页:
[1]
2