江协STM32笔记(一)
这边建议看我这篇笔记的话不如去看江协的课程:
简介
- STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器,用处有很多不细讲。
- ARM既指ARM公司,也指ARM处理器内核
- ARM公司设计ARM内核,半导体厂商完善内核周边电路并生产芯片
本篇写的都是跟江协讲的对应,用的是STM32F103C8T6
- 内核:ARM Cortex-M3
- 主频:72MHz
- RAM(Random Access Memory):20K(SRAM)
- ROM(Read-Only Memory):64K(Flash)
- 供电:2.0~3.6V(标准3.3V)
- 封装:LQFP48
片上资源

引脚定义

系统结构

启动配置

最小系统电路

C语言补充
数据类型
在这里面的数据类型就变成这个样子了,仔细看看就好

宏定义
这个就是用 #define ABC 123
来为数字进行可读性的解释。
想法比较类似的还有 typedef unsigned char uint8_t
,给比较长的变量类型名换个名字便于使用。
枚举
关键字:enum
用途:定义一个取值受限制的整型变量,用于限制变量取值范围;宏定义的集合
定义枚举变量:
enum{FALSE = 0, TRUE = 1} EnumName;
因为枚举变量类型较长,所以通常用typedef更改变量类型名
引用枚举成员:
EnumName = FALSE;
EnumName = TRUE;
新建工程步骤

工程架构

GPIO部分
基础知识
可根据需求配置为8种输入输出模式:

详情见参考手册第110页
引脚电平:0V~3.3V,部分引脚可容忍5V
输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等
输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等
stm32片上资源如下:

库函数讲解
‘ 具体的话去翻参考文档里面的pdf文件以及原始库文件的注释
说实在的听江协的课实际上学的是他写这种工程文件的一种思维,了解我应该从什么入手,如何抽丝剥茧一般了解这些东西,完整的经历这样一个项目的周期。
所以这里只讲明所用到的库里面的各个函数是干什么的,不讲解如何去用,这个是开发的时候都事情。
stm32f10x_gpio.h:
1 |
|
stm32f10x_rcc.:
这个文件是复位与时钟控制,用到了下面一句这个,他这个库里面基本上都是这个套路,RCC开头然后参数基本上就这,就是拿来配置时钟的,啥时候用啥时候翻。高级用法暂时不用。
1 |
|
实验部分
元器件
- 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定
- 无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音
- LED灯:略
- 按键:这个按键内部 用的是机械式弹簧片进行通断,会有抖动,要做个削震。
- 传感器模块:传感器元件(光敏电阻/热敏电阻/红外接收管等)的电阻会随外界模拟量的变化而变化,通过与定值电阻分压即可得到模拟电压输出,再通过电压比较器进行二值化即可得到数字电压输出
编码流程
- 用RCC配置时钟
- GPIO初始化
- 主循环实现代码逻辑
江协STM32笔记(一)
http://example.com/2025/08/11/嵌入式/江协STM32入门/江协STM32笔记(一)/