由于项目的需要,需要一个水上stm32单片机与水下的电子仓里面的stm32进行通讯。
我的思路是这样的,先不考虑距离传输,直接采用串口进行传输。
然后我的思路是,采用$stm32cubemx$对串口进行配置,因为是全双工的,所以我想法是利用串口ttl模块
通过查阅资料,一般的串口通讯ttl能传播的距离为10m左右,对于水下机器人的传播距离显然不适用,所以之后我们会采用485模块,通过485模块,将水下机器人的传播距离增大至1km.
之前测试的时候,我是想通过ttl模块,直接对单片机发送16进制的数据,测试hal库的中断接收好不好用,但是在测试的过程中,我发现,通过ttl模块对单片机发送的数据和在hal里面,调用发送中断函数,其发送的16进制的数据,并不一样,在这个地方。我卡了好久,
现在考虑怎么把控制速度和舵机的进行融合,我们可以这样。
在接受中断里面,通过接收中断,把舵机的信号接收,然后通过判断其正确之后,我们将其和单片机采集的ADC值进行融合,然后发送数据包,通过485发送给水下单片机,从而操作其工作。