打印
[STM32F0]

无法配置成高阻态

[复制链接]
596|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STM32F030 GPIO无法配置成高阻态

使用特权

评论回复
沙发
jiajs| | 2021-4-12 23:16 | 只看该作者

楼主详细说说怎么回事啊,这么说太笼统了

使用特权

评论回复
板凳
liliang9554|  楼主 | 2021-4-12 23:19 | 只看该作者
项目中使用到8脚数码管,需要使用高阻态来消影。程序之前在STM32f1跟STM8L051上跑都没问题,在F030上就出现串码现象了单步发现是部分IO无法高阻导致
寄存器配置跟库函数配置我都用了

使用特权

评论回复
地板
liliang9554|  楼主 | 2021-4-12 23:21 | 只看该作者

使用特权

评论回复
5
songqian17| | 2021-4-12 23:22 | 只看该作者

void GPIO_MODE(uint32_t gpio_pin,u8 odr)
        {                 
                GPIO_InitTypeDef GPIO_InitStructure;
               
               GPIO_InitStructure.GPIO_Pin = gpio_pin;
                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(GPIOA, &GPIO_InitStructure);
                if(odr)
                        GPIO_SetBits(GPIOA,gpio_pin);   // = 1
                else
                        GPIO_ResetBits(GPIOA,gpio_pin); // = 0
                /*
               
                //设置输出模式
                GPIOA->MODER &= ~(3 << (pin * 2));
                GPIOA->MODER |=  (1 << (pin * 2));
                //设置推挽输出
                GPIOA->OTYPER &= ~(1 << pin);
                //设置输出速度2MHz
                GPIOA->OSPEEDR &= ~(3 << (pin * 2));
                //GPIO端口上拉/下拉寄存器
                GPIOA->PUPDR &= ~(3 << (pin * 2));
                */
        }

        void GPIO_Floating(uint32_t gpio_pin)
        {/*
                //设置浮空输入模式
                GPIOA->MODER &= ~(3 << (pin * 2));
                //GPIO端口上拉/下拉寄存器
                GPIOA->PUPDR &= ~(3 << (pin * 2));
                */
                GPIO_InitTypeDef GPIO_InitStructure;
               
          GPIO_InitStructure.GPIO_Pin = gpio_pin;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
                GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//无上下拉
                GPIO_Init(GPIOA, &GPIO_InitStructure);
        }
void LED1_PIN(char num) {if(num == 1){GPIO_MODE(GPIO_Pin_0,1); }  else if(num == 0){GPIO_MODE(GPIO_Pin_0,0); }  else {GPIO_Floating(GPIO_Pin_0);}}
void LED2_PIN(char num) {if(num == 1){GPIO_MODE(GPIO_Pin_1,1); }  else if(num == 0){GPIO_MODE(GPIO_Pin_1,0); }  else {GPIO_Floating(GPIO_Pin_1);}}
void LED3_PIN(char num) {if(num == 1){GPIO_MODE(GPIO_Pin_2,1); }  else if(num == 0){GPIO_MODE(GPIO_Pin_2,0); }  else {GPIO_Floating(GPIO_Pin_2);}}
void LED4_PIN(char num) {if(num == 1){GPIO_MODE(GPIO_Pin_3,1); }  else if(num == 0){GPIO_MODE(GPIO_Pin_3,0); }  else {GPIO_Floating(GPIO_Pin_3);}}
void LED5_PIN(char num) {if(num == 1){GPIO_MODE(GPIO_Pin_4,1); }  else if(num == 0){GPIO_MODE(GPIO_Pin_4,0); }  else {GPIO_Floating(GPIO_Pin_4);}}
void LED6_PIN(char num) {if(num == 1){GPIO_MODE(GPIO_Pin_5,1); }  else if(num == 0){GPIO_MODE(GPIO_Pin_5,0); }  else {GPIO_Floating(GPIO_Pin_5);}}
void LED7_PIN(char num) {if(num == 1){GPIO_MODE(GPIO_Pin_6,1); }  else if(num == 0){GPIO_MODE(GPIO_Pin_6,0); }  else {GPIO_Floating(GPIO_Pin_6);}}
void LED8_PIN(char num) {if(num == 1){GPIO_MODE(GPIO_Pin_7,1); }  else if(num == 0){GPIO_MODE(GPIO_Pin_7,0); }  else {GPIO_Floating(GPIO_Pin_7);}}

使用特权

评论回复
6
wangzsa| | 2021-4-12 23:24 | 只看该作者
有没有可能这个引脚坏了呢 换一个试试看

使用特权

评论回复
7
stly| | 2021-4-12 23:26 | 只看该作者
为什么无法配置呢 每个都应该可以啊 是不是外部电路给拉下来了

使用特权

评论回复
8
llljh| | 2021-4-12 23:28 | 只看该作者
硬件电路的问题吧

使用特权

评论回复
9
renyaq| | 2021-4-12 23:30 | 只看该作者
你的问题好奇怪啊

使用特权

评论回复
10
supernan| | 2021-4-12 23:32 | 只看该作者

换一个引脚试试看

使用特权

评论回复
11
shimx| | 2021-4-12 23:36 | 只看该作者
二者之间的寄存器是一样的吗

使用特权

评论回复
12
liliang9554|  楼主 | 2021-4-12 23:38 | 只看该作者

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

使用特权

评论回复
13
zchong| | 2021-4-13 07:58 | 只看该作者
会叫?

使用特权

评论回复
14
sonicll| | 2021-4-13 09:00 | 只看该作者
GPIO配置成开漏模式,输出寄存器写1,这才是高阻态

使用特权

评论回复
15
guanjiaer| | 2021-5-7 14:28 | 只看该作者
有这种模式的吗

使用特权

评论回复
16
heimaojingzhang| | 2021-5-7 15:20 | 只看该作者
为什么要使用高阻态呢

使用特权

评论回复
17
keaibukelian| | 2021-5-7 15:22 | 只看该作者
其他模式可以配置成功 吗

使用特权

评论回复
18
labasi| | 2021-5-7 15:24 | 只看该作者
你的问题很奇怪

使用特权

评论回复
19
paotangsan| | 2021-5-7 16:05 | 只看该作者
f0的没有这个模式的吗

使用特权

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

本版积分规则

950

主题

11568

帖子

6

粉丝