发 帖  
原厂入驻New
[问答] STM32f103 Keil编程问题,小白求大神解答
819 c语言 STM32
分享
我写了如下一段话:
IF(enc28j60_Read(MAADR5)== macaddr[0])
{
语句1;
}       
else
{
语句2;
}
实际中ENC28J60_Read(MAADR5)和macaddr[0]的值都为0x04,但程序判断为假,执行else语句。
如果我把if语句改成if(ENC28J60_Read(MAADR5)==0x04)或者if(0x04== macaddr[0]),则判断为真,执行语句1.
求问大神,这是什么原因造成的?小弟感谢

1
2019-11-20 22:47:02   评论 分享淘帖 邀请回答

相关问题

3个回答
帮顶一下,坐等大神解答
2019-11-21 11:30:08 评论

举报

帮顶一下,坐等大神解答。是不是一个是指针变量指向变量的地址,一个是指针本身的地址?
2019-11-22 09:38:36 评论

举报

1)是否 ENC28J60_Read() 返回类型 与 macaddr【】数组类型不同啊,在函数前加个强制类型转换符试试?
2019-11-22 16:55:13 3 评论

举报

3 条评论
  • 2019-11-25 20:40

    抱歉今天才有空试了试    函数前加强制类型转换还是不行啊

  • 2019-11-25 20:48

    我知道了   macaddr[]是以太网控制芯片的寄存器, ENC28J60_Read() 好像不能和寄存器的值比较,我把 macaddr[]赋值给数组,就可以比较了

    北洋水师 回复 爱红叶: 2019-11-28 18:44

    依照你上面的论述,似乎是这个数组的值被改变着,然后和函数的返回值比较,这样当然是不可以的。

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

我要提问
关闭

站长推荐 上一条 /10 下一条

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