请原子哥指点代码

2019-08-17 06:25发布

u8 sim800c_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 ",cmd);  //发送命令
。。。。。。
。。。。。。
}

上面是SIM800C发送命令的函数,参数cmd是个指针,if((u32)cmd<=0XFF)这句看不明白,指针转32位数据,然后与0XFF比较?请指点?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-08-17 10:40
你看我们0X1A,怎么发送的,就知道为什么这么写了
操作系统
2楼-- · 2019-08-17 12:15
 精彩回答 2  元偷偷看……
DavidDing
3楼-- · 2019-08-17 16:28
if((u32)cmd<=0XFF)这里其实没必要转换类型,地址本来就是32位的把,要转的是指向的值。还有转换是不是还得带上*号,比如(u32)*cmd<=0xFF

一周热门 更多>