完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位好!!
这样读取PA口的值是不是有问题? void ACC_DET_SWITCH () { //static uint32_t ACC_DET_COUNT = 0; //static uint32_t LOCK_CLOSE_DET_Count = 0; static uint32_t ReadGPIO_PA_All = 0; ReadGPIO_PA_All = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_All); switch(ReadGPIO_PA_All) { case 0x603D: HAL_Delay(50); MIRROR_OPEN ; HAL_Delay(4000); MIRROR_OPEN_STOP; break; } |
|
相关推荐
11个回答
|
|
这样***么方法读取PA口的值吗?
|
|
|
|
本帖最后由 toofree 于 2018-1-21 15:07 编辑
STM32F030F4没用过。但STM32全系列有个特点,就是管脚模拟输入功能,要做数字输入用,得初始化成数字输入功能。 更正一下,刚看了下STM32F030的用户手册,PA口上电默认是数字输入功能。 |
|
|
|
当然,要初始化IO工作模式和正常操作IO口时,PA口对应的外设时钟必须开启,上电默认是关闭的。
|
|
|
|
zhouxk 发表于 2019-1-15 19:41 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 我的IO口配置是这样的,有问题吗? |
|
|
|
IseekerTonyZhu 发表于 2019-1-15 20:10 HAL不会用,一直用的是标准固件库。 所有外设初始化时必须开时钟,见下图第一个红色框,对应IO的就是AHB、APB必须开。 对于输入,就是要置输入方向,要不要上下拉,第二个红色框。 |
|
|
|
IseekerTonyZhu 发表于 2019-1-15 20:10 初始化少了一句: GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 读某1位: HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7 ); 读GPIO口: ReadGPIO_PA_All=GPIOB->IDR; |
|
|
|
zhouxk 发表于 2019-1-15 19:41 学习了!谢谢! |
|
|
|
IO时钟是开着的,谢谢你的建议。 |
|
|
|
zhouxk 发表于 2019-1-15 20:18 谢谢!我再看看。 |
|
|
|
zhouxk 发表于 2019-1-15 20:18 你好!请问一下怎么读取低8位的值呢? |
|
|
|
非常感谢两位的解答,问题也找到了。读取PA值(GPIOA->IDR)0X603D在仿真的时候是可以用的。正常情况下不能读取正常值,因为仿真脚在PA口中,仿真的时候时钟、数据都读为高电平,正常运行是减去仿真IO口的值为0X203D这样就工作正常了。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1906 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1027 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1436 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1879 浏览 1 评论
566 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-18 01:26 , Processed in 0.768743 second(s), Total 94, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号