OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6056|回复: 5

关于原子SIM900a例程中if((u32)cmd<=0XFF)怎么判断的

[复制链接]

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2016-12-12
在线时间
31 小时
发表于 2018-3-24 20:33:15 | 显示全部楼层 |阅读模式
1金钱
以下是程序源码,求大神告知


//向sim900a发送命令//cmd:发送的命令字符串(不需要添加回车了),当cmd<0XFF的时候,发送数字(比如发送0X1A),大于的时候发送字符串.
//ack:期待的应答结果,如果为空,则表示不需要等待应答
//waittime:等待时间(单位:10ms)
//返回值:0,发送成功(得到了期待的应答结果)
//       1,发送失败
u8 sim900a_send_cmd(u8 *cmd,u8 *ack,u16 waittime)
{
        u8 res=0;
        USART3_RX_STA=0;
        if((u32)cmd<=0XFF)
        {
                while((USART3->SR&0X40)==0);//等待上一次数据发送完成  
                USART3->DR=(u32)cmd;
        }else u3_printf("%s\r\n",cmd);//发送命令
        if(ack&&waittime)                //需要等待应答
        {
                while(--waittime)        //等待倒计时
                {
                        delay_ms(10);
                        if(USART3_RX_STA&0X8000)//接收到期待的应答结果
                        {
                                if(sim900a_check_cmd(ack))break;//得到有效数据
                                USART3_RX_STA=0;
                        }
                }
                if(waittime==0)res=1;
        }
        return res;
}

最佳答案

查看完整内容[请看2#楼]

cmd是一个指针,当我赋值指针=0XFE的时候,或者更小的时候,就
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-3-24 20:33:16 | 显示全部楼层
cmd是一个指针,当我赋值指针=0XFE的时候,或者更小的时候,就<0xff了,此时指针就用来传递一个数字而已。 如果只想字符串,必定大于0XFF。所以,可以做两种应用。
回复

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2016-12-12
在线时间
31 小时
 楼主| 发表于 2018-3-25 11:40:52 | 显示全部楼层
正点原子 发表于 2018-3-24 20:33
cmd是一个指针,当我赋值指针=0XFE的时候,或者更小的时候,就

谢谢原子哥。
回复

使用道具 举报

57

主题

316

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1344
金钱
1344
注册时间
2018-1-11
在线时间
156 小时
发表于 2018-4-10 12:39:03 | 显示全部楼层
这个视频里说的也是比较清楚的呢,为什么是0xFF。加入是1a,发送短信指令,则就小于FF,而除了1A,其他的AT指令的地址都是0x0800 0000,肯定大于FF,所以,这样来区分是其他AT指令,还是1A
回复

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2016-12-12
在线时间
31 小时
 楼主| 发表于 2018-4-11 21:08:32 | 显示全部楼层
活到老,学到老 发表于 2018-4-10 12:39
这个视频里说的也是比较清楚的呢,为什么是0xFF。加入是1a,发送短信指令,则就小于FF,而除了1A,其他的AT ...

谢谢了大兄弟
回复

使用道具 举报

5

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-5-26
在线时间
20 小时
发表于 2018-10-25 15:09:59 | 显示全部楼层
为什么数字的地址就小于0xff呢
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 23:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表