打印
[STM32F1]

初步了解STM32的学习笔记(以STM32F103C8T6为例)

[复制链接]
797|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1.简了解STM32F103C8T6
STM32F103C8T6属于主流系列STM32F1

内核是ARM Cortex-Mex3

主频为72Hz

RAM:20K(SRAM)

ROM:64K(Flash)

封装:LQFP48

供电:2~3.6V(一般为3.3)

(注意:以前51用的是5V,而USB也是5V,所以直接插上,而stm32会加上一个稳压芯片,让电压为3.3V)
2.STM32系列的外设资源

(所有图都是用的是B站上整理过的)




表里面前两个深色的是Cortex-M3内核里面的外设,现在有个基本了解就行,以后用的时候慢慢学习。

使用特权

评论回复
沙发
欢乐家园|  楼主 | 2023-5-30 10:57 | 只看该作者
3.系统结构
(初学的话先简单了解一下,便于以后学习STM32)


从上到下看(想要更多了解的话去手册上看,这里只介绍了一部分)

ICode是指令总线,用来加载程序指令
DCode是数据总线,用来加载数据的
ICode和DCode主要是用来连接Flash的
Flash用于储存我们编写的程序
System是系统总线,连着其他地方,比如SRAM(用于储存程序运行时的变量数据)
ABH系统总线的意思先进高性能总线,用于挂载外设,比如说图中的SDIO、复位和时钟控制。它还连着APB1和APB2,APB的意思是先进外设总线,用于连接外设。由于ABH和APB存在一定差异,所以用两个桥接完成数据的转换和缓存。
DMA用于搬运大量数据,它可以像CPU一样,使用其他外设,但又不需要CPU参与,这是为了省下CPU的时间干别的事。

使用特权

评论回复
板凳
欢乐家园|  楼主 | 2023-5-30 10:57 | 只看该作者
3.系统结构
(初学的话先简单了解一下,便于以后学习STM32)


从上到下看(想要更多了解的话去手册上看,这里只介绍了一部分)

ICode是指令总线,用来加载程序指令
DCode是数据总线,用来加载数据的
ICode和DCode主要是用来连接Flash的
Flash用于储存我们编写的程序
System是系统总线,连着其他地方,比如SRAM(用于储存程序运行时的变量数据)
ABH系统总线的意思先进高性能总线,用于挂载外设,比如说图中的SDIO、复位和时钟控制。它还连着APB1和APB2,APB的意思是先进外设总线,用于连接外设。由于ABH和APB存在一定差异,所以用两个桥接完成数据的转换和缓存。
DMA用于搬运大量数据,它可以像CPU一样,使用其他外设,但又不需要CPU参与,这是为了省下CPU的时间干别的事。

使用特权

评论回复
地板
欢乐家园|  楼主 | 2023-5-30 10:57 | 只看该作者
3.系统结构
(初学的话先简单了解一下,便于以后学习STM32)


从上到下看(想要更多了解的话去手册上看,这里只介绍了一部分)

ICode是指令总线,用来加载程序指令
DCode是数据总线,用来加载数据的
ICode和DCode主要是用来连接Flash的
Flash用于储存我们编写的程序
System是系统总线,连着其他地方,比如SRAM(用于储存程序运行时的变量数据)
ABH系统总线的意思先进高性能总线,用于挂载外设,比如说图中的SDIO、复位和时钟控制。它还连着APB1和APB2,APB的意思是先进外设总线,用于连接外设。由于ABH和APB存在一定差异,所以用两个桥接完成数据的转换和缓存。
DMA用于搬运大量数据,它可以像CPU一样,使用其他外设,但又不需要CPU参与,这是为了省下CPU的时间干别的事。

使用特权

评论回复
5
欢乐家园|  楼主 | 2023-5-30 10:58 | 只看该作者
4.引脚

使用特权

评论回复
6
欢乐家园|  楼主 | 2023-5-30 10:58 | 只看该作者
(推荐优先使用加粗的地方,没有加粗的,可能需要配置或者有其他功能)

标红色的是与电源有关的
标绿色的是IO口、功能口的引脚
标蓝色的是与最小系统相关的引脚
(S代表电源,I代表输入,O代表输出)

(FT:Five voltage Tolerant,就是5V容忍,没有FT的,就是3.3V)

1是备用电源的
2是I/O口或RTC(输出RTC校准时钟或RTC闹钟脉冲或秒脉冲)或侵入检测(就是一个安全保障)
3、4都是I/O口或接32.768KHz的RTC晶振
5、6接系统主晶振
7是系统复位引脚,NRST意思为negative reset,是负极复位
8、9内部模拟部分的电源
10到19、21、22、25到33、41到43、45到46都是I/O口
20是I/O口或BOOT1的引脚
22、23、35、36、47、48是系统的主电源口(VSS是负极,VDD正极)
34、37到40是I/O口或调试端口
44是BOOT0的引脚

使用特权

评论回复
7
欢乐家园|  楼主 | 2023-5-30 10:58 | 只看该作者
(推荐优先使用加粗的地方,没有加粗的,可能需要配置或者有其他功能)

标红色的是与电源有关的
标绿色的是IO口、功能口的引脚
标蓝色的是与最小系统相关的引脚
(S代表电源,I代表输入,O代表输出)

(FT:Five voltage Tolerant,就是5V容忍,没有FT的,就是3.3V)

1是备用电源的
2是I/O口或RTC(输出RTC校准时钟或RTC闹钟脉冲或秒脉冲)或侵入检测(就是一个安全保障)
3、4都是I/O口或接32.768KHz的RTC晶振
5、6接系统主晶振
7是系统复位引脚,NRST意思为negative reset,是负极复位
8、9内部模拟部分的电源
10到19、21、22、25到33、41到43、45到46都是I/O口
20是I/O口或BOOT1的引脚
22、23、35、36、47、48是系统的主电源口(VSS是负极,VDD正极)
34、37到40是I/O口或调试端口
44是BOOT0的引脚

使用特权

评论回复
8
欢乐家园|  楼主 | 2023-5-30 10:58 | 只看该作者
5.建立工程
建立工程文件夹,Keil中新建工程,选择型号
工程文件夹里建立Start、 Library、 User等文件夹,复制固件库里面的文件到工程文件夹
工程里对应建立Start、 Library、 User等同名称的分组,然后将文件夹内的文件添加到工程分组里工程选项,C/C++, Include Paths内声明所有包含头文件的文件夹
工程选项,C/C++,Define内定义USE_ STDPERIPH_ _DRIVER(工程选项,Debug,下拉列表选 择对应调试器,Settings, Flash Download里 勾选Reset and Run)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

106

主题

941

帖子

1

粉丝