完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
u8 ReadKeyDown(void)
{ /*VT信号有效*/ if(GPIO_ReadInputDataBit(GPIO_315MVT_PORT, GPIO_315MVT)) //GPIO_315MVT_PORT是GPIOA //GPIO_315MVT是GPIO_Pin_8=0x0100 { //其中的代码省略。 } } uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) { uint8_t bitstatus = 0x00; if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)Bit_RESET) //Bit_SET=1 Bit_RESET=0 { bitstatus = (uint8_t)Bit_SET; } else { bitstatus = (uint8_t)Bit_RESET; } return bitstatus; } 问题:根据按键初始化函数,这个GPIO_Mode= GPIO_Mode_IPU GPIO_Pin = GPIO_315MVT(0x0100),由GPIO_Mode_IPU = 0x48推算GPIOA->IDR=0x48,然后跟GPIO_Pin按位与操作后不是一直为0吗? 那这段代码不是就没意义了吗? |
|
相关推荐
4个回答
|
|
|
if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)Bit_RESET) //Bit_SET=1 Bit_RESET=0
请注意这是一个32位的运算,而不是8位的运算 |
|
|
|
|
|
注意:(uint32_t)Bit_RESET)这是32位的,你前面也是要搞成32位进行比较,在位运算上你要多注意一下
|
|
|
|
|
|
谢谢!!!!!!!!!!!!!!!!! |
|
|
|
|
z00 发表于 2014-3-7 23:22 谢谢!!!!!!!!!!!!!! |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard-文件I/O的深入学习之阻塞I/O与非阻塞I/O
307 浏览 0 评论
大神们,想知道你们都用什么ide编程调试器? Arduino IDE?还是 e2studio ?还有其他吗?哪个好用呢
459 浏览 0 评论
825 浏览 0 评论
790 浏览 0 评论
飞凌嵌入式ElfBoard-文件I/O的了解探究之复制文件描述符
717 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 10:39 , Processed in 0.664100 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2689