本文已参与「新人创作礼」活动,一起开启掘金创作之路。
介绍
参考资料
BOOT引脚
| 启动 | BOOT0 | BOOT1 |
|---|---|---|
| 主存储器 | 0 | 0 |
| 信息块 | 3.3V | 0 |
GPIO引脚
GPIO可以配置为几种模式,通过寄存器配置
图片来自普中教程
- 输入模式
- 输出模式
- 推挽模式
- 开漏模式:只有N-mos管工作,需要外接上拉电阻
- 复用功能
- 模拟输入输出:双 MOS 管结构被关闭,施密特触发器停用,上/下拉 也被禁止
STM32 中凡是使用到外设功能,都要使能对应的外设时钟,对应为RCC,RCC 时钟外设是挂接AHB总线上。
void delay(u32 i)
{
while(i--);
}
int main()
{
RCC_APB2ENR |= 1<<4;//使PC时钟使能打开
GPIOC_CRL &= ~( 0x0F<< (4*0));//置低4位为0
GPIOC_CRL |= (3<<4*0);//置低2位为1
GPIOC_BSRR=(1<<(16+0));//操纵设置寄存器
while(1)
{
GPIOC_BSRR=(1<<(16+0));
delay(0xFFFFF);
GPIOC_BSRR=(1<<(0));
delay(0xFFFFF);
}
}
下面是一个走马灯程序
int main()
{
int i;
RCC_APB2ENR |= 1<<4;
for(i=0;i<8;i++){
GPIOC_BSRR=(1<<(i));
GPIOC_CRL &= ~( 0x0F<< (4*i));
GPIOC_CRL |= (3<<4*i);
}
while(1)
{
for(i=0;i<8;i++){
GPIOC_BSRR=(1<<(16+i));
delay(0xFFFFF);
GPIOC_BSRR=(1<<(i));
}
}
}