STM32F103C8T6板子介绍

STM32是ST公司基于ARMCortex-M内核的32位微控制器,广泛应用在嵌入式系统如智能车和物联网设备中。STM32F103C8T6是其一型号,通常采用系统存储器启动模式,配置BOOT0和BOOT1引脚。工程搭建涉及Keil5MDK、固件库和调试器设置,适用于不同容量的产品。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32简介

  • STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器
  • STM32常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等
  • STM32功能强大、性能优异、片上资源丰富、功耗低,是一款经典的嵌入式微控制器。

 STM32F103C8T6

F1XX片上资源/外设

命名规则

 系统结构

 启动配置

 在使用STM32F10XX时,我们一般使用系统存储器启动模式

将BOOT0引脚置1,BOOT1引脚置0。

 并在FlyMcu软件进行开始编程前,做如下设置:

 最小系统电路

 软件安装步骤:

  1. 安装Keil5 MDK
  2. 安装器件支持包
  3. 软件注册
  4. 安装STLINK驱动
  5. 安装USB转串口驱动

型号分类及缩写

 此处,STM32F103C8T6板子的Flash容量为64K,所以该板子为中容量产品(MD),

如果是野火的STM32F103系列板子(如指南者、霸道),则是大容量产品(HD)。

新建工程的步骤:

  1. 建立工程文件夹,Keil中新建工程,选择型号。
  2. 工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹。
  3. 工程里对应建立Start、Library、User等同名称的分组,然后将文件夹内的文件添加到工程分组里。
  4. 工程选项,C/C++,Include Paths内声明所有包含头文件的文件夹。
  5. 工程选项,C/C++,Define内定义USE_STDPERIPH_DRIVER。
  6. 工程选项,Debug,下拉列表选择对应调试器,Settings,Flash Download里勾选Reset and Run 。

工程架构:

来源:江协科技

### STM32F103 GPIO LED 点灯 示例代码 对于STM32F103系列微控制器,通过GPIO控制LED的操作涉及几个关键步骤:配置时钟、初始化GPIO端口以及编写用于控制LED状态的函数。 #### 配置时钟 为了确保外设正常工作,在操作任何GPIO之前需先开启相应的时钟。针对PB端口(即红色、绿色和蓝色LED所在的端口),应启用APB2总线上的GPIOB时钟: ```c // 开启GPIOB时钟 RCC_APB2ENR |= (1 << 3); ``` 此命令会激活GPIOB模块所需的电源供应并允许对其进行编程[^4]。 #### 初始化GPIO端口 接下来要设置具体的引脚模式为推挽输出类型,并设定初始电平。这里假设使用的是默认的速度等级和其他参数;如果需要更详细的定制化配置,则可以在`stm32f1xx_hal_msp.c`文件中的相应位置添加额外的初始化语句。 ```c __HAL_RCC_GPIOB_CLK_ENABLE(); // 启用GPIOB时钟 GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); ``` 上述代码片段完成了对RGB三色LED所关联的三个引脚(PB0, PB1 和 PB5)作为推挽输出类型的初始化设置[^1]。 #### 控制LED的状态 最后一步就是创建一些简单的宏来简化LED开关逻辑。这些宏利用了预处理器指令使得源码更加易读且易于维护: ```c #define ON GPIO_PIN_RESET #define OFF GPIO_PIN_SET #define RLED(flag) HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, flag) #define GLED(flag) HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, flag) #define BLED(flag) HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, flag) // 使用示例: RLED(ON); // 打开红灯 GLED(OFF); // 关闭绿灯 BLEL(ON); // 打开蓝灯 ``` 以上定义不仅提高了代码可读性还增强了其灵活性,因为只要更改一次宏定义就可以改变整个应用程序的行为而无需逐行修改实际调用的地方[^2]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值