学习目的:解stm32时钟系统,会用jlink或者stlink通过keil的debug进行在线调试
一、时钟系统
时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作.外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转 换、定时器计数等等。
1.STM32时钟系统框图
注:预分频是指系统时钟先经过固定的分频系数后产生相应频率的时钟,提供给单片机定时器的计时输入。
2、时钟源
注:任何一个外设在使用之前,必须使能其相应的时钟
参考手册:
3、相关寄存器的配置
二、SystemInit时钟系统初始化函数剖析
1、函数代码
2、SetSysClock函数
3、SetSysClockTo72函数
三、Systick滴答定时器延时函数
Systick是一个24位的系统节拍定时器system tick timer,SysTick,具有自动重载和溢出中断功能,所有基于Cortex_M3处理器的微控制器都可以由这个定时器获得一定的时间间隔。
1、Systick定时器定义及作用
2、相关寄存器
3
3、CTRL寄存器
4、LOAD,VAL寄存器
5、相关库函数
6、SysTick_CLKSourceConfig函数
7、用中断方法实现延时
四、程序调试方法
1、参考手册
2、调试原理
3、SWJ调试端口脚
4、引脚分配
相关库函数
5、步骤
(1)配置
(2)软件仿真:点击debug
注:需设置断点进行debug
(3)硬件仿真:点击编译并debug
注:需要通过串口调试助手查看串口数据