模块买回来使用其自带的串口助手配置时,输入指令不需要加“\r\n”, 所以我以为使用Usart_SendString函数给模块传命令时也不用加。
不加的后果就是除了指令+++a可以正常识别之外,其他指令都传输失败。
随后我找到了ATK BLE 01配套的源码,扒开其配置函数,如下图
所以代码里配置次模块还是建议加上\r\n
附上函数,基本就是野火HC05模块附带的代码例子里边的配置命令函数
uint8_t ATK_Send_CMD(char* cmd,uint8_t clean)
{
uint8_t retry=2;
uint32_t i;
uint16_t len;
char * redata;
while(retry--)
{
DMA_SendCMD(cmd); //使用DMA向串口传输数据
i=500;
Delay_s(1);
do
{
redata = get_rebuff(&len);
if(len>0)
{
if(strstr(redata,"OK")||strstr(redata,"ok"))
{
if(clean==1)
clean_rebuff();
LED2_TOGGLE; //此处使用LED来判断AT命令是否传送成功
Delay_ms(500);
LED2_TOGGLE;
Delay_ms(500);
return 0; //AT指令成功
}
}
Delay_ms(10);
}while( --i ); //继续等待
}
if(clean==1)
clean_rebuff();
LED1_TOGGLE;
Delay_ms(500);
LED1_TOGGLE;
Delay_ms(500);
return 1; //AT指令失败
}