STM32
直播中

成尔秩

9年用户 1046经验值
私信 关注
[问答]

JDY-08蓝牙模块AT指令响应只能接收到第一个字符是怎么回事?

小弟使用了一块JDY-08的蓝牙模块,和STM8L051单片机。这个蓝牙模块使用AT命令来配置。本来用电脑的串口助手来下AT命令,是能看到回应的。(比如,下AT+RST,串口助手可以看到返回+OK的字符。)但是,在STM8L051中,用程序来下AT指令,uart收到的响应字符就只有一个“+”,后面的“OK”怎么也接收不到。如果用uart接收中断,则也只有一次中断发生。
1、我已经检查了STM8L051的uart接收,用自发自收的方式来接收字符串,完全没有问题。
2、蓝牙模块接在电脑上,使用串口助手来下命令,也可以有完整的回应。蓝牙模块也没问题。
3、用示波器检查波形,发现STM8L051的RX线上有完整的对应+OK的字符的波形。且波特率在误差范围内。
4、试了其他板子,也换了其他波特率和改变停止位、校验位,都还是只能接收第一个字符。
5、程式上,在接收中断里都是简单的赋值,并没有很多其他的操作。按理不会耽误后面字符的接收。

小弟实在没有其他办法,特求助于各位大神帮忙出出主意,十分感谢!

回帖(1)

沈会笛

2024-5-7 17:11:27
软件调试看看,是不是死在了发送中断里面?
然后,把
  extern u8 Res;
  extern char feng[5];
放到函数外面试试。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分