完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-22 08:48 编辑
当我使用 if(GPIOPinRead(GPIOA1_BASE,GPIO_PIN_2))时可以执行if里面的语句,但是当我使用 if(GPIOPinRead(GPIOA1_BASE,GPIO_PIN_2)==1) 时却无法执行if里面的语句,在这个过程中其它地方都没有修改。 这两个语句在c语言中不是等价的吗? 请问是编译器的问题吗? 感谢 |
|
相关推荐
3个回答
|
|
在C语言也是不等价的,因为你是判断函数返回值是多少的。第一个带==1是判断是否为1,而如果返回的是其他不为0的值,依然是不成立。第二个是判断返回值是否为非0.。。明白了吧,你想看个到底是不是返回非0值了,或者判断某一个位,你可以查看那个韩硕原型。不知道你下载那个cc3200-sdk没有,里面有库函数的。请查看原型。确认你的目的是否一致。
我还是帮你找到吧,免得你不知道去哪儿找 extern long GPIOPinRead(unsigned long ulPort, unsigned char ucPins); long GPIOPinRead(unsigned long ulPort, unsigned char ucPins) [ // // Check the arguments. // ASSERT(GPIOBaseValid(ulPort)); // // Return the pin value(s). // return(HWREG(ulPort + (GPIO_O_GPIO_DATA + (ucPins << 2)))); ] 看出来了吗,从.h里面的定义都可以看出来返回值的类型。 你如果还是不明白,请在串口打印这个值,然后看看是多少,这样帮助你准确的理解库函数的用意 |
|
|
|
潘涛12345 发表于 2018-6-21 19:22 嗯嗯 明白了 就是说返回值是一整个字节,只有你指定的那个位才是1或者0,其它位都作为0返回。 谢谢指导 |
|
|
|
对,就是这个意思。0和1那种纯粹的说是布尔类型,不为0就为1,而这里定义的不是这种类型。不是单位数值,是多位数值,因此可以是某一位为1或者多位为1. |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
686 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
601 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1055 浏览 1 评论
744 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
526 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
169浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
130浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
128浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
125浏览 12评论
GD32F303RCT6配置PA4 ADC引脚,将PA2代替key功能,PA2连接时无法实现预期功能,为什么?
59浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 02:07 , Processed in 0.896664 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号