51和32区别
位数:
51:8位(STC89C52)
32:32位(STM32F103ZET6)
时钟:
- 51:11.0592Mhz晶振
- 32
- F103:8Mhz晶振(×9),主频:72Mhz
- F103:12Mhz晶振(×6),主频:72Mhz
- F407:168Mhz主频
时钟
E:外部,I:内部
高速外部晶振:HSE
低速外部晶振:LSE
高速内部晶振:HSI
低速内部晶振:LSI
锁相环:让8MHz晶振变成72MHz主频
每个外设初始化的大致流程
- 把图形化界面配置的参数赋值给对应的结构体的成员变量
- 把结构体地址当做参数传给初始化函数
- 初始化函数根据每个结构体成员变量操作对应的寄存器
//时钟初始化
SystemClock_Config();
RCC_OscInitTypeDef RCC_OscInitStruct = {0}; //结构体类型变量
//在void SystemClock_Config(void)中(main.c第133)
RCC_OscInitStruct.HSEState = RCC_HSE_ON; //(144行)
HAL_RCC_OscConfig(&RCC_OscInitStruct); //(main.c第148)
//HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct)中
__HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); //377行
#define __HAL_RCC_HSE_CONFIG(__STATE__) //__STATE__ = RCC_OscInitStruct->HSEState(RCC_HSE_ON)
do{
if ((__STATE__) == RCC_HSE_ON)
{
SET_BIT(RCC->CR, RCC_CR_HSEON); //RCC->CR = 时钟控制寄存器(RCC_CR)
}
#define RCC_CR_HSEON_Pos (16U)
//0x1左移16位(注意是二进制左移)
#define RCC_CR_HSEON_Msk (0x1UL << RCC_CR_HSEON_Pos) /*!< 0x00010000 */
#define RCC_CR_HSEON RCC_CR_HSEON_Msk
//第17个数为1,则是第十六位,第16位:0:HSE振荡器关闭,1:HSE振荡器开启。
#define SET_BIT(REG, BIT) ((REG) |= (BIT)) //BIT = RCC_CR_HSEON(0x00010000)
STM32芯片参数
Core: ARM 32-bit Cortex™-M3 CPU:ARM架构,32位单片机,内核型号
72 MHz maximum frequency:72MHz主频
芯片型号含义:
Flash:磁盘,RAM:运行内存
一般软件、代码等运行在RAM,但32单片机代码运行在Flash
3 × 12-bit, 1 µs A/D converters
- A/D converter = ADC:A:模拟信号,D:数字信号,模拟信号转数字信号
- 3:3路ADC
- Conversion range: 0 to 3.6 V:采样值 0-3.6V
- 12bit:,将采样范围分成4096份,即为采样精度,这个越高精度越高
- 2 × 12-bit D/A converters = DAC:数字信号转模拟信号
- Serial wire debug (SWD) :STL烧写
- Up to 112 fast I/O ports:112个IO口功能引脚
- Up to 11 timers:11个定时器
软件安装与使用
注意:所有路径不能有中文(包含用户名)
安装:keil、STM32CubeMX、STM32CubeIDE(需要的留言)
STM32CubeIDE与STM32CubeMX库文件安装路径自定义设置
搜索自己芯片型号(我的型号:STM32F103ZET6)
新建工程必须设置
STM32CubeMX
完成,建工程
STM32CubeIDE
新建工程
版本号这里:1.8.5
若别人工程为别的版本,需下载别的版本
下载工程对应版本即可
这里与STM32CubeMX相同,参考上面配置,最后:ctrl + s 保存
Keil+CubeMX = CubeIDE
烧录
代码烧录方式
ST-Link
将ST-Link烧写器与单片机连接
CubeMX keil软件烧录
编译无错误后,点击图中框选按钮烧录
若烧录不成功,可看是否是这个错误:链接
CubeIDE软件烧录
编译无错误后,点击图中框选按钮烧录
STM32 ST-LINK Utility
其实是一个烧写软件,看图可知,对应功能
选择好对应hex文件,直接烧写即可
串口烧录
步骤:
-
数据线连接电脑和单片机串口1
-
手动将板子的BOOT0置1,BOOT1置0,使用Bootloader方式
-
断电 重启
-
打开FlyMCU软件烧写(若没有反应可按复位按钮尝试)
-
手动将板子的BOOT0置0,BOOT1置0
-
板子重新上电