完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位,我在使用STM32f407zet6这个芯片的时候,想把GPIOC设置为输入端口,检测外部按键,我的程序具体编码是这样的:
//对端口初始化 void InitExternalIO(void) { GPIO_InitTypeDef GPIO_InitStructure; /* ´ò¿ªGPIOCµÄʱÖÓ */ RCC_APB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); //ÊäÈë¶Ë¿Ú //PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN; //ÊäÈë GPIO_InitStructure.GPIO_OType=GPIO_OType_OD; //¿ªÂ©Êä³ö GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL; // GPIO_InitStructure.GPIO_Speed=GPIO_Speed_25MHz; // GPIO_Init(GPIOC,&GPIO_InitStructure); } 然后在循环里面循环读取C端口的输入状态,再通过串口输出:程序是 OStimeDly(500); { char buf[15]; InitExternalIO(); sprintf(buf,"GPIOC=%04xrn",GPIOC->IDR); DebugPrint(buf); } 在我改变C端口的状态时(示波器观测有变化),但是在串口接收到数据始终是GPIOC=0000,我想知道 哪里没有设置好,或者是由于硬件上问题,望知其下落者告知? |
|
相关推荐
9个回答
|
|
我跟你用的库不一样,不过我把GPIO随便设置成输入甚至是输出都可以读到。
看你代码唯一让我觉得可能有错的地方就是,你把GPIOC设置成OD输入,只听说过OD输出,是不是这里配置错了? |
|
|
|
本帖最后由 lwfchat 于 2016-3-10 14:44 编辑
你说的这个问题,我也改变过:输入上拉或者是输入悬空,都是同样的现象, 我觉得这个配置是比较简单的,你的QQ是多少,还望赐教? |
|
|
|
但是奇怪的是,我在使用PB5,PB6,PB7模拟读写外部E2PROM是正确的,但是端口C D E F,读取不到状态变化,我擦
|
|
|
|
输入的话 不用配置speed和otype
|
|
|
|
是的不用配置,但是配置了也不影响,在调用端口初始化函数时,那部分没执行的。我关心的是状态为何读取不到。
|
|
|
|
没人帮我了,我晕
|
|
|
|
|
|
RCC_APB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
==> RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); |
|
|
|
楼上的兄弟, 都是我粗心啊,太感谢了,
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
991 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
970 浏览 2 评论
2080 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1177 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1599 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 16:38 , Processed in 0.801876 second(s), Total 87, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号