您好:
我使用IWR1642 SDK 的串口读函数 UART_read()或者UART_readPolling()函数,一次读取上位机发送的二十个字节。上位机每100ms 发送一帧数据。一般前三帧数据是正确的,但后面的每一帧数据 都会发生 最后一个字节到第一个字节的位置。但是当我将上位机的两帧数据发送间隔设置800ms 以上时就不会出现这种清空,发送几百帧都不会出现错位现象。
我一次接收到20个字节后,就会处理这一帧数据。处理结束后会清空缓存,再接收下一帧。当我只是接收时不在做数据处理,两帧数据的发送间隔为600ms时不出现错位现象。间隔小于600ms时又会出现错位现象。
发送的正确数据是十六进制:0 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff 77 88 99 c2
Chris Meng:
你好,
请问你测试的时候,是否IWR1642上只运行了串口读写代码,没有其他的代码运行?建议使用串口驱动的测试代码来做相关功能验证。
请问串口的模式设置的是UART_DATA_BINARY么?
ning bang:
回复 Chris Meng:
你好:IWR1642上还运行了距离检测的代码,IWR1642会将检测到的目标信息发送到上位机。
串口模式设置的是 UART_DATA_BINARY
这个问题已经困扰我很久了,一直没找到解决办法。
Chris Meng:
回复 ning bang:
你好,
请先不要运行距离检测代码,只运行串口程序,看是否问题和同时运行的距离检测有关。
ning bang:
回复 Chris Meng:
你好,只运行串口程序,错位的现象依然存在。请问驱动是否有可能存在问题。
Chris Meng:
回复 ning bang:
你好,
请问你使用的是IWR1642BOOST么?TI 的mmW demo有使用串口来读取PC下发的命令,是可以正常运行的。
你可以尝试使用uart 驱动的test例程来复现你的问题么?
ning bang:
回复 Chris Meng:
你好:
我用的是 AWR1642BOOST,自己做的产品用的是IWR。工程应该是通用的吧。
请问是这个路径下的例程吗,C:\ti\mmwave_sdk_02_00_00_04\packages\ti\drivers\uart\test\xwr16xx,但是里面没有工程文件,我应该怎么导入呢。麻烦你了
Chris Meng:
回复 ning bang:
你好,
没有工程文件。在sdk下编译可执行文件后,在ccs里下载,下载的时候可以指向源文件进行debug。
ning bang:
回复 Chris Meng:
你好:
我用了sdk 中的uart 测试文件,发现还是有这样的情况。请问你们以前遇到过这样的情况吗。
正确数据是:00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 88 99 AA BB
Chris Meng:
回复 ning bang:
你好,
你使用通用的串口工具来发送数据,还是自己写的工具?
ning bang:
回复 Chris Meng:
你好:
我使用了自己的上位机,同时也使用了另外几款通用的串口工具都有这种问题。请问你们有AWR1642的板子吗,能不能测试一下,两帧数据的发送间隔小于一个值时就会出现这种情况。