OpenEdv-开源电子网

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

小弟c语言不好,求大神解释

[复制链接]

30

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
268
金钱
268
注册时间
2013-8-27
在线时间
8 小时
发表于 2013-9-1 10:32:05 | 显示全部楼层 |阅读模式
 

问:主要是不知道CAN_Transmit(CAN1, &TxMessage)取的什么值和两个while括号里是如何比较的


 TransmitMailbox=CAN_Transmit(CAN1, &TxMessage);
  i = 0;
 // 用于检查消息传输是否正常
  while((CAN_TransmitStatus(CAN1, TransmitMailbox) != CANTXOK) && (i<0xff))
  {
       i++;
    delay_us(1);
  }

  i = 0;
 // 检查返回的挂号的信息数目
  while((CAN_MessagePending(CAN1, CAN_FIFO0) < 1) && (i <0xff))
  {
        i++;
    delay_us(1);
  }

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

204

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
287
金钱
287
注册时间
2013-7-17
在线时间
0 小时
发表于 2013-9-1 13:01:59 | 显示全部楼层
先看括号里的,(CAN_TransmitStatus(CAN1, TransmitMailbox) != CANTXOK)  表示CAN_TransmitStatus(CAN1, TransmitMailbox)这个函数的返回值如果不等于CANTXOK,则此句话为真,如果等于CANTXOK,则此句话为假,(i<0xff)表示 i如果小于0xff,则此句话为真,如果大于等于0xff,则此句话为假,中间没有括号的&&表示将前面和后面的两句话相与,只有两句话都为真,(CAN_TransmitStatus(CAN1, TransmitMailbox) != CANTXOK) && (i<0xff)才为真,然后用while()语句判断,假为0,真为非0。懂了吗?
有生之年,只诉温暖不言殇,花味渐浓,茶味渐醇,倾心相遇,安暖相陪。
回复 支持 反对

使用道具 举报

30

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
268
金钱
268
注册时间
2013-8-27
在线时间
8 小时
 楼主| 发表于 2013-9-1 16:07:51 | 显示全部楼层
回复【2楼】wghfbj:
---------------------------------
懂了,但CAN_TransmitStatus(CAN1, TransmitMailbox)的返回值不知道额
 括号里为什么有两个参数
回复 支持 反对

使用道具 举报

15

主题

204

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
287
金钱
287
注册时间
2013-7-17
在线时间
0 小时
发表于 2013-9-1 19:49:37 | 显示全部楼层
回复【3楼】小z:
---------------------------------
这个你去看下STM32库函数帮助手册,里面有讲解每个函数,在里面可以找到这个函数,了解这个函数是做什么用的。
有生之年,只诉温暖不言殇,花味渐浓,茶味渐醇,倾心相遇,安暖相陪。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-13 21:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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