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

posted @ 2019-10-22 01:12  Yu_tiann  阅读(534)  评论(0编辑  收藏  举报