一天一句C语言,准备拿下小安派!16

[复制链接]
查看801 | 回复8 | 2023-10-9 16:35:37 | 显示全部楼层 |阅读模式

本帖最后由 ckdsx.cn 于 2023-10-9 16:47 编辑

本帖最后由 ckdsx.cn 于 2023-10-9 16:38 编辑

struct STRUCT_USART_Fram EC616S_Fram_Record_Struct = { 0 };  //定义了一个数据帧结构体

// cmd 待发送的指令
// ack1,ack2;期待的响应,为NULL表不需响应,两者为或逻辑关系
// time 等待响应时间
//返回1发送成功, 0失败
bool EC616S_Send_AT_Cmd(char *cmd,char *ack1,char *ack2,u32 time)
{
EC616S_Fram_Record_Struct .InfBit .FramLength = 0; //重新接收新的数据包
EC616S_USART("%s\r\n", cmd);
if(ack1==0&&ack2==0)     //不需要接收数据
{
return true;
}
printf("delay some time to get receive data\r\n");
delay_ms(time);   //提供足够的时间用于接收数据,(数据接收部分在uart中断usart.h --> USART2_IRQHandler(void) 中完成)
delay_ms(1000);
EC616S_Fram_Record_Struct.Data_RX_BUF[EC616S_Fram_Record_Struct.InfBit.FramLength ] = '\0';printf("EC616S_data:%s",EC616S_Fram_Record_Struct .Data_RX_BUF);
if(ack1!=0&&ack2!=0)
{
    return ( ( bool ) strstr ( EC616S_Fram_Record_Struct .Data_RX_BUF, ack1 ) ||    //查询
                     ( bool ) strstr ( EC616S_Fram_Record_Struct .Data_RX_BUF, ack2 ) );
}
else if( ack1 != 0 )  //strstr(s1,s2);检测s2是否为s1的一部分,是返回该位置,否则返回false,它强制转换为bool类型了
    return ( ( bool ) strstr ( EC616S_Fram_Record_Struct .Data_RX_BUF, ack1 ) );

else if( ack2 != 0 )
    return ( ( bool ) strstr ( EC616S_Fram_Record_Struct .Data_RX_BUF, ack2 ) );
else
    return false;
printf("EC616S_data:%s",EC616S_Fram_Record_Struct .Data_RX_BUF);
if(ack1!=0&&ack2!=0)
{
    return ( ( bool ) strstr ( EC616S_Fram_Record_Struct .Data_RX_BUF, ack1 ) ||    //查询
                     ( bool ) strstr ( EC616S_Fram_Record_Struct .Data_RX_BUF, ack2 ) );
}
else if( ack1 != 0 )  //strstr(s1,s2);检测s2是否为s1的一部分,是返回该位置,否则返回false,它强制转换为bool类型了
    return ( ( bool ) strstr ( EC616S_Fram_Record_Struct .Data_RX_BUF, ack1 ) );

else if( ack2 != 0 )
    return ( ( bool ) strstr ( EC616S_Fram_Record_Struct .Data_RX_BUF, ack2 ) );
else
    return false;
}

很多模块都用的是AT命令,直接使用是方便,但是还有好多同学不明白如何编写对应的操作函数, 以上是我找到的一段既有命令发送又有回调判断的通用函数示例,仅供参考!

回复

使用道具 举报

WangChong | 2023-10-9 16:36:59 | 显示全部楼层
学习了
回复

使用道具 举报

ckdsx.cn | 2023-10-9 16:39:27 | 显示全部楼层

真快,我都还不知道怎么调整代码颜色,就跟上来了~
回复 支持 反对

使用道具 举报

iiv | 2023-10-9 18:49:57 | 显示全部楼层
实名插眼
回复

使用道具 举报

496199544 | 2023-10-9 21:21:19 | 显示全部楼层
学习
回复

使用道具 举报

jkernet | 2023-10-9 22:11:43 | 显示全部楼层
打卡学习
回复

使用道具 举报

粉色小风扇 | 2023-10-10 08:43:48 | 显示全部楼层
老师又更新教程了
回复 支持 反对

使用道具 举报

lsrly | 2023-10-10 10:50:55 | 显示全部楼层
不错不错,真不错
回复 支持 反对

使用道具 举报

望风阁 | 2024-4-18 17:46:59 | 显示全部楼层
我也想要小安派
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则