1.学习使用的芯片是stm32f103zet6,和51不同,基本的外围电路包括:多个时钟电路、复位电路(低电平有效)、启动电路(boot0,boot1的电平)和电源电路。
2.控制单片机的代码编写方式有寄存器方式、固件库方式(标准库、hal库),无论那种库,最终还是回归寄存器操作。其中寄存器代码量小,但是开发效率低,hal具有良好的兼容性和可移植性,但是代码量多,不过也受到官方推崇。
一般文件有:
core的启动文件
hallib中各种hal库文件(寄存器一些操作都写好了,为用户提供api接口,开发驱动效率高)
user中一些头文件和其他重要文件
system中delay、usart、sys为自己以后编程方便写的驱动文件
hardware中各种外部设备的驱动文件,主要在此文件中开发用户逻辑
3.芯片烧写程序的方式有:串口,SWD,JTAG
在那之前先来了解下BOOT:
BOOT0 BOOT1 说明
0 x flash启动,复位即运行程序
1 0 系统存储器启动,串口下载
1 1 SRAM启动,在SRAM中调试代码
串口方式:使用UART1两个引脚通过CH340实现单片机和pc端信息连接,
boot1为0,boot0为1,复位,开始下载程序,
boot1为0,boot0为0,复位,程序启动,
原子哥的电路板添加了一键下载电路配合串口CH340芯片可以一键下载程序并运行,需要isp软件下载。不能调试程序。
SWD方式:下载最少只用2根信号线(推荐),安装驱动后直接用keil下载。
JTAG方式:需要更多下载线,安装驱动后用keil下载即可
swd和jtag方式实用相同的封装,两者可随意切换,不需要太多电路,可调试程序。