小白爱32
获得 112 次赞
帮助过173人
keil每次改完程序都要按第三个按钮编译吗,你们如何快速调试的?就是按 第三个rebuild all target files那个按钮,感觉很慢!
各位认为学习STM32主要学习的重点是什么?比如哪些外设是重点;又比如将来针对哪个领域,哪些功能是重点,请根据自身工作经验分析下,谢谢~
按键初始化步骤1.初始化该GPIO口为输入上拉2.初始化该GPIO口为输出高电平————为什么要初始化为输出高电平??难道不应该是输入高电平么?我用IDR寄存器操作是不起作用的,相反ODR的寄存器可以谁给解释下,谢谢
GPIOD->CRL&=0xFFFFF0FF;//清除该位原来的设置GPIOD->CRL|=0x00000300;//D2推挽输出,50MHZGPIOD->ODR|=1<<2;//D2置1 GPIOA->CRH&=0xFFFFFFF0;//清除该位原来的设置 GPIOA->CRH|=0x00000003;//A8推挽输出,50MHZ GPIOA->ODR|=1<<8;//A8置1 GPIOC->CRL&=0xFFFFFF0F;//清除该位原来的设置 GPIOC->CRL|=0x00000080;//C1按键口上拉下拉输入 GPIOC->CRH&=0xFF0FFFFF;//清除该位原来的设置 GPIOC->CRH|=0x00800000;//C13按键口上拉下拉输入 //GPIOC->IDR=1<<1|1<<13; GPIOC->ODR|=1<<1;//PC1上拉本来按键写的输入来,导致按键不能使用 GPIOC->ODR|=1<<13;//PC13上拉程序倒数第二行按键的IO口为什么写输出高电平? 前边明明吧按键PC1设置为输入上拉了,难道不是输入高电平么?这样子GPIOC->IDR|=1<<1;
#define BITBAND(addr bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))//拓展出来的存储控制的地址#define MEM_ADDR(addr) *((volatile unsigned long *)(addr)) //取这个地址上边的值#define BIT_ADDR(addr bitnum) MEM_ADDR(BITBAND(addr bitnum)) //取拓展出来的地址的值