野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8979|回复: 3

点灯实验中GPIO_CRL的配置问题

[复制链接]
发表于 2022-1-19 13:37:56 | 显示全部楼层 |阅读模式
led接PB5和PE5,gpiox_CRL复位值是0x4444 4444,通过代码设置MODE5为01,并没有对CNF5进行操作,理论上CNF5状态应该是01,对应开漏输出状态,但led灯还是亮了,这个是怎么回事,源代码如下:

unsigned int *GPIOE_ODR= (unsigned int *)(0x4001180c);
unsigned int *GPIOB_ODR= (unsigned int *)(0x40010c0c);
void LED1(char flag){
        if(flag==0){
                *GPIOE_ODR&=~(1<<5);
        }
        else{
                *GPIOE_ODR|=(1<<5);
        }
}
void LED0(char flag){
        if(flag==0){
                *GPIOB_ODR&=~(1<<5);
        }
        else{
                *GPIOB_ODR|=(1<<5);
        }
}
void delay(unsigned int x){
        unsigned int i;
        while(x--){
                for(i=500;i>0;i--);
        }
}
int main(void){
        *(unsigned int *)(0x40021018)|=(1<<3);
        *(unsigned int *)(0x40021018)|=(1<<6);
       
        *(unsigned int *)(0x40011800)|=(1<<20);
        *(unsigned int *)(0x40010c00)|=(1<<20);
        #if 1           //这里置一或者清零都不对实验现象产生影响
        *(unsigned int *)(0x40011800)&=~(1<<22);
        *(unsigned int *)(0x40010c00)&=~(1<<22);
        #endif
       
        while(1){
                LED1(0);
                LED0(1);
                delay(5000);
                LED1(1);
                LED0(0);
                delay(5000);
        }
       
}

void SystemInit(void){

}



Snipaste_2022-01-19_13-28-10.jpg
回复

使用道具 举报

发表于 2023-1-15 17:39:48 | 显示全部楼层
看的哔站视频是吧,我也是,很纳闷,火哥说CRL复位值是0,我觉得他讲错了,可能这里开漏和推勉都可以喽?
兄弟你解决了吗
回复 支持 反对

使用道具 举报

发表于 2023-1-19 10:22:29 | 显示全部楼层
这个是直接控制GPIO的电平,哪个模式都可以
回复 支持 反对

使用道具 举报

发表于 2023-1-19 10:27:32 | 显示全部楼层
只要是输出模式就行
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 11:24 , Processed in 0.032771 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表