[STM32F0]

GPIO口的高低电平不受控制

[复制链接]
986|25
手机看帖
扫描二维码
随时随地手机跟帖
heweibig|  楼主 | 2021-5-5 21:31 | 显示全部楼层 |阅读模式
GPIO口高低电平不受控制,下面是一段测试代码。无法把PF0、PF1、PC0、PC1、PC2拉低。MCU是STM32F072RBT6。

使用特权

评论回复
yszong| | 2021-5-5 21:35 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
heweibig|  楼主 | 2021-5-5 21:36 | 显示全部楼层
void LED_Init(void)
{            
        GPIO_InitTypeDef  GPIO_InitStructure;

        RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOA, ENABLE);//使能GPIOA时钟
        RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOC, ENABLE);//使能GPIOC时钟
        RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOF, ENABLE);//使能GPIOF时钟
        

        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;//LED0和LED1对应IO口
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        //GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化GPIO
        GPIO_SetBits(GPIOF,GPIO_Pin_0 | GPIO_Pin_1);//GPIOF0,F1设置高,灯灭
        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        GPIO_ResetBits(GPIOA,GPIO_Pin_15);
        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 |GPIO_Pin_1|GPIO_Pin_2;//LED0和LED1对应IO口
        GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIO        
        GPIO_SetBits(GPIOC,GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2);
        

}

使用特权

评论回复
heweibig|  楼主 | 2021-5-5 21:39 | 显示全部楼层
其他IO口也无法操作

使用特权

评论回复
pengf| | 2021-5-5 21:42 | 显示全部楼层
你使能GPIO时钟要使用这个函数:
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);

使用特权

评论回复
xxrs| | 2021-5-5 21:44 | 显示全部楼层
如果可能的话,建议使用Cube库来开发

使用特权

评论回复
jiajs| | 2021-5-5 21:47 | 显示全部楼层
F1/F0那些系列的标准库不会做更新了的

使用特权

评论回复
juventus9554| | 2021-5-5 21:56 | 显示全部楼层
何况基于CUBEMX 图形化配置工具做基本配置会省很多事

使用特权

评论回复
dingy| | 2021-5-5 21:58 | 显示全部楼层
我们把重点放在用户应用函数的编写、调试方面

使用特权

评论回复
heweibig|  楼主 | 2021-5-5 22:00 | 显示全部楼层
非常感谢你的帮忙,是我粗心了

使用特权

评论回复
heweibig|  楼主 | 2021-5-5 22:06 | 显示全部楼层
另外我也在尝试用cubemx,刚接触还没有上手,以后请多多指教

使用特权

评论回复
wyjie| | 2021-5-5 22:07 | 显示全部楼层
函数用错了,开端口应该用的是:RCC_APB2PeriphClockCmd 这个函数。

使用特权

评论回复
heweibig|  楼主 | 2021-5-5 22:10 | 显示全部楼层

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
改成这样之后还是控制不了IO口,所有的IO口都不受控制

使用特权

评论回复
dingy| | 2021-5-5 22:12 | 显示全部楼层
怀疑是MCU根本都没有正常工作

使用特权

评论回复
heweibig|  楼主 | 2021-5-5 22:14 | 显示全部楼层
板子是以前别人画的demo板,用他的代码可以正常工作。

使用特权

评论回复
heweibig|  楼主 | 2021-5-5 22:16 | 显示全部楼层
我自己下载STM32F0的模板库,demo板无法正常工作。

使用特权

评论回复
jiahy| | 2021-5-5 22:18 | 显示全部楼层
貌似没偶时钟使能啊

使用特权

评论回复
lizye| | 2021-5-5 22:20 | 显示全部楼层
直接用cube生成的代码就不会有这种问题

使用特权

评论回复
heweibig|  楼主 | 2021-5-5 22:22 | 显示全部楼层

哦,那我就知道怎么回事了,多谢大家

使用特权

评论回复
八层楼| | 2021-6-1 21:04 | 显示全部楼层
先看看硬件接的对不对

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

869

主题

13089

帖子

7

粉丝