1、
2、编程有两种方式:
(1)基于寄存器编程
(2)用函数库编程
3、F103中文参考手册
4、什么是寄存器:现在可以把它认为是地址,我们要调用外设,就必须知道这些外设的地址,而寄存器就存储了这些外设的地址
5、
程序最后必须要是一行空的,不然会报错
比如:
改为:
这样就不会报错了
6、
像这样一个工程模板就可以下载到开发板运行
7、仿真器不仅要与开发板连接也要与电脑连接,与电脑连接是有usb线连接的,下图是开发板的连接
8、软件开发流程:
(首先:
1、外设所连接的总线的基地址和偏移
2、外设的基地址和偏移
)
(1)首先找到GPIOB挂载在那条总线上的(这需要查找STM32F103参考手册中的STM32结构图或者表格)
(2)由于我们是面向寄存器编程的,所以之后我们的去找RCC寄存器中的AHB2总线,必须打开该引脚的使能,从而就打开了它的时钟。所以现在就要去找AHB2总线的寄存器的复位和时钟控制的基地址。之后还要加上偏移地址。
(3)控制GPIO的工作模式。怎样知道该选择什么样的工作模式呢?这个的分析电路,得知必须把该GPIO的工作模式配置为输出模式,才能使LED点亮。但输出也还细分了其他几种模式,那到底该选择哪种输出模式呢?这个现在好像也得分析电路得出。
(3.1)然后去找推挽模式涉及的寄存器,
9、面向寄存器编码时,首先要宏定义一些指向整数的指针(这里的整数其实是此寄存器的位置)。
10、
11、为什么我们软件开发要首先去看这个外设连在那个总线上的呢?因为看下图(截图自STM公司提供的参考手册),AHB系统总线控制着时钟,而在进行软件开发时,必不可少的就是时钟。所以首先要去找该外设连接在那条总线上的
12、控制外设使能与否,就是控制这个外设的时钟
13、
14、
地址非负所以是无符号的
15、
16、
STM32的外设寄存器组织形式:基于 基地址+寄存器偏移地址
17、
18、
19、
每一个项目都要加启动文件吗?
20、
中断优先级数值越小,优先级越高
21.
IRQ不会相同
22.
23.
24.