当前位置: 首页 > news >正文

STM32F103 单片机

引言

单片机是一种集成微处理器、存储器和输入/输出接口于一体的集成电路芯片。它广泛应用于嵌入式系统中,从家用电器到工业自动化设备。本教程将介绍使用 STM32F103 系列单片机进行基本开发的过程。

硬件准备

- STM32F103 Discovery Board

- USB线

- 计算机

- ST-Link V2 编程器(可选)

软件准备

- STM32CubeIDE

- Keil uVision 或其他支持ARM的IDE(可选)

- ST-Link Utility (用于编程器)

开发环境搭建

1. 安装STM32CubeIDE

2. 打开STM32CubeIDE,选择`File -> New STM32 Project`

创建项目

1. 选择你的STM32型号 `STM32F103C8T6`

2. 添加必要的HAL库文件

3. 配置时钟树

4. 设置GPIO和其他外设

撰写第一个程序 - 闪烁LED灯

步骤 1: 初始化GPIO

```c

// 初始化GPIO端口为输出模式

void GPIO_Init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, uint16_t GPIO_Mode, uint16_t GPIO_Speed, uint16_t GPIO_OType, uint16_t GPIO_PuPd) {

/* ... GPIO初始化代码... */

}

// 初始化LED

void LED_Init(void) {

GPIO_Init(GPIOA, LED_PIN, GPIO_MODE_OUT, GPIO_SPEED_FREQ_LOW, GPIO_OTYPE_PP, GPIO_NOPULL);

}

```

步骤 2: 控制LED闪烁

```c

// 使能外设时钟

void EnablePeriphClock(void) {

/* 使能GPIOA时钟 */

__HAL_RCC_GPIOA_CLK_ENABLE();

}

// 闪烁LED函数

void ToggleLED(void) {

static uint32_t toggle = 0;

HAL_GPIO_TogglePin(GPIOA, LED_PIN);

toggle = !toggle;

}

```

步骤 3: 主循环

```c

int main(void) {

/* 外设时钟使能 */

EnablePeriphClock();

/* 初始化LED */

LED_Init();

while (1) {

/* 闪烁LED */

ToggleLED();

/* 延时 */

HAL_Delay(500);

}

}

```

项目编译与下载

1. 在STM32CubeIDE中点击`Build`按钮编译项目。

2. 使用ST-Link将程序下载到开发板。


http://www.mrgr.cn/news/67308.html

相关文章:

  • 【前端】JavaScript 方法速查大全-对象(二)
  • 高效率的快捷回复软件 —— 客服宝聊天助手
  • 期权懂|期权卖方亏损无限盈利有限,如何破解亏损无限呢?
  • 提交linux kernel patch流程
  • 钉钉内集成第三方免密登录(Vue+.Net)
  • 数学基础 -- 线性代数之线性无关
  • 初识Mysql数据库
  • Appium环境搭建/使用教程(图文超详细)
  • 高并发内存池扩展 -- 处理大内存,优化释放时需要传入空间大小,加入定长内存池,存放映射关系的容器的锁机制,优化性能(基数树,优势,优化前后对比)
  • Cesium中granularity关键字引起的连锁知识
  • 【系统架构设计师】高分论文:论企业集成平合的技术与应用
  • C语言-详细讲解-洛谷P1075 [NOIP2012 普及组] 质因数分解
  • Cookie技术详解:互联网中的“记忆”使者
  • Jenkins应用详解(Detailed Explanation of Jenkins Application)
  • 使用Golang实现开发中常用的【实例设计模式】
  • 秒杀系统设计:原则、关键技术与注意事项
  • ROS2humble版本使用colcon构建包
  • 二叉树的遍历和线索二叉树
  • 高频面试题(含笔试高频算法整理)基本总结回顾33
  • LCL三相并网逆变器simulink仿真+说明文档
  • ctfshow(316)--XSS漏洞--反射性XSS
  • 每日一题之老式计算器
  • 无需手动部署的正式版comfyUI是否就此收费?开源等同免费?
  • 定时任务——xxl-job原理与实现
  • 系统思考—深层结构
  • 【客户服务】全员服务