一、对于STM32F芯片的认识?
STM32是一种微控制器,主要有三种类型的MCU:主流级别MCU、高性能MCU、低功耗MCU。再详细一点,我们可以具体到STM32的命名规则,比如STM32F103C8T6中的“F”,代表的就是通用型,另外还有,比如S代表的是简单型、L代表的是低功耗、H代表高性能、AL是汽车应用低功耗型、AF是汽车应用通用型。
对于此次实验我们选择stm32f103c8t6芯片
二丶GPIO端口
GPIO(general porpose intput output):通用输入输出端口的简称。可以通过软件控制其输出和输入。stm32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通信,控制以及数据采集的功能。
2.初始化设置
1.打开GPIO口的时钟



-
将GPIOA GPIOB GPIOC三个时钟打开 -
#define RCC_APB2ENR (*(unsigned int *)0x40021018) -
// 打开时钟 -
RCC_APB2ENR |= (1<<2); // 打开 GPIOA 时钟 -
RCC_APB2ENR |= (1<<3); // 打开 GPIOB 时钟 -
RCC_APB2ENR |= (1<<4); // 打开 GPIOC 时钟
2.初始化
采用推挽输出模式


端口1-7为低,端口8-15为高。每个引脚由四个位控制。
以GPIOB和0号引脚(B0)为例,将其设置为推挽输出,并设置最大速度为10MHz,则将控制B0的四个位设置为0001:

-
#define GPIOB_CRL (*(unsigned int *)0x40010c00) -
// 最后四位变为0001 -
GPIOB_CRL |= (1<<0); // 最后一位变1 -
GPIOB_CRL &= ~(0xE<<0); // 倒数2、3、4位变0
对于GPIOB的B0、GPIOC的C15、GPIOA的A0,设置如下:
-
#define GPIOB_CRL (*(unsigned int *)0x40010C00) -
#define GPIOC_CRH (*(unsigned int *)0x40011004) -
#define G
本文介绍了如何使用STM32F103C8T6芯片通过GPIO端口实现LED灯的闪烁。首先,文章讲解了STM32芯片的基本认识和GPIO端口的原理。接着,详细阐述了GPIO口的初始化设置,包括开启时钟、设置推挽输出模式以及设定低电平。在硬件连接部分,提到了电路连接方法,如GND、3v3、TXD、RXD、LED等引脚的连接。最后,简要提到了项目的创建和汇编实现过程。
最低0.47元/天 解锁文章
3370

被折叠的 条评论
为什么被折叠?



