源程序为蓝牙控制298n小车前后转,控制舵机左右转,各个功能正常,
代码里蓝牙为usart2,298npwm为tim4,舵机pwm为tim3。
实践问题为蓝牙按钮按下(发送一个数据),有时无法反馈,需要按下多次(这里的多次也是随机的,有时按两下甚至一下就可以)才能随机产生正确反应,蓝牙与单片机波特率9600,电机100khz,舵机50hz。
求解决思路
分步骤确认问题。步骤1.蓝牙按钮按下这个信号是否能实时检测到。步骤2:在按钮没问题情况下,蓝牙 usart2 是否是实时接收到数据。步骤3:在蓝牙串口数据能实时接收数据的情况下,数据是否到达前后转和舵机。步骤4:前后转和舵机在接收到数据后,能是否能按数据要求进行动作。一步一步排查,各个击破。祝你成功。
检测供电是否稳定
检测是否有虚焊
检测开关之类的原件是否有损坏
接收器是否损坏
代码是否有误?
清除蓝牙数据,再次发送,基本可以定位是接收端还是发出端的问题。
先单独测试串口透传功能,看蓝牙透传有没有问题,如果没有,那就是软件或其它硬件的问题了。
先排除蓝牙按钮是否有问题,如果没有问题就把波特率降低些看能不能稳定。