STM32读取匿名光流数据——与Guidance的光流和超声波做对比测试
使用两个串口同时读取匿名光流和Guidance数据:用以比较两个光流的效果
Github链接:https://github.com/W-yt/YuTian_Pro/tree/master/Guidance%26Ano_Read
遇到的问题:
匿名光流连接上位机用HID通信读取光流数据,符合通信协议。
但是使用串口助手读取光流数据发现不符合光流通信协议,无帧头。
原因:
匿名光流要求串口波特率最好大于500000,而我直接安装以前的习惯设置为115200,。导致收到的数据错乱,改为500000后数据正常。
遇到的问题:
直接从匿名飞控的代码中移植光流数据处理部分到自己的工程后,发现程序卡在B.处。
原因:
程序卡在B.处的原因是程序中存在打开但是没有处理的中断(未清除中断标志)。
因为匿名的飞控代码中,将串口的中断处理函数改了名字:默认为UART4_IRQHandler(),匿名的代码中改为Uart2_IRQ()
另外注意,飞控中光流使用的是UART4,4号串口是UART而非USART,在写中断函数名时注意不要写成USART4_IRQHandler,否则会产生相同的异常。
UART和USART:
UART:universal asynchronous receiver and transmitter——通用异步收发器
端口: TX , RX
USART:universal synchronous asynchronous receiver and transmitter——通用同步异步收发器
端口: TX, RX, CK
USART支持同步模式,因此USART 需要同步始终信号USART_CK(如STM32 单片机),通常情况同步信号很少使用,因此一般的单片机UART和USART使用方式是一样的,都使用异步模式。
—— cloud over sky
—— 2019/10/21