OpenEdv-开源电子网

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

字符串为什么要和十六进制数比较,是什么意思呢?

[复制链接]

15

主题

82

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2015-4-13
在线时间
0 小时
发表于 2015-7-3 17:09:15 | 显示全部楼层 |阅读模式
5金钱
  大家帮忙看一下吧!
u8 sim900a_send_cmd(u8 *cmd,u8 *ack,u16 waittime)
{
u8 res=0; 
USART2_RX_STA=0;
if((u32)cmd<=0XFF)
{
while(DMA1_Channel7->CNDTR!=0); //等待通道7传输完成   
USART2->DR=(u32)cmd;
}else u2_printf("%s\r\n",cmd);//发送命令
if(ack&&waittime) //需要等待应答
{
while(--waittime) //等待倒计时
{
delay_ms(10);
if(USART2_RX_STA&0X8000)//接收到期待的应答结果
{
if(sim900a_check_cmd(ack))break;//得到有效数据 
USART2_RX_STA=0;

}
if(waittime==0)res=1; 
}
return res;

问题:以上红色代码是什么意思?cmd为什么要和0XFF比较???不懂。。。。

最佳答案

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

具体代码不是我写的。 但是我隐约记得: 1)u8 *cmd 这是入口参数,,,所以(u32) cmd的值,是cmd的地址。 如果是正常的AT指令发送:sim900a_send_cmd("AT+CMGF=1","OK",200)  那么毫无疑问,cmd的值是0x8000000+x ,也就是flash的某个地址。 如果是0x1A,发送方式是这样的:sim900a_send_cmd((u8*)0X1A,"SEND OK",1000) 那么cmd的值就是0x1A。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2015-7-3 17:09:16 | 显示全部楼层
具体代码不是我写的。
但是我隐约记得:
1)u8 *cmd 这是入口参数,,,所以(u32) cmd的值,是cmd的地址。
如果是正常的AT指令发送:sim900a_send_cmd("AT+CMGF=1","OK",200)  那么毫无疑问,cmd的值是0x8000000+x ,也就是flash的某个地址。
如果是0x1A,发送方式是这样的:sim900a_send_cmd((u8*)0X1A,"SEND OK",1000)
那么cmd的值就是0x1A。
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复

使用道具 举报

15

主题

82

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2015-4-13
在线时间
0 小时
 楼主| 发表于 2015-7-3 17:19:29 | 显示全部楼层
是把cmd的asscii值和0xff比较吗?
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2015-7-3 23:41:40 | 显示全部楼层
看下cmd的定义吧,cmd有范围的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

15

主题

82

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2015-4-13
在线时间
0 小时
 楼主| 发表于 2015-7-4 20:03:17 | 显示全部楼层
回复【3楼】八度空间:
-------------------------------
cmd是AT指令?这样说对吗,怎么看到它的定义呢??
回复

使用道具 举报

15

主题

82

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2015-4-13
在线时间
0 小时
 楼主| 发表于 2015-7-5 10:21:13 | 显示全部楼层
哦,那是不是可以理解“AT+CMGF=1“存放在flash中的某个地址段??
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 13:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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