STM32读取匿名光流数据——与Guidance的光流和超声波做对比测试

本文详细探讨了使用两个串口同时读取匿名光流和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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值