嵌入式软件--stm32 DAY 8.5 基础复习总结

1.时钟树

在数据手册里面,有一张密密麻麻的图,正是时钟系统里的时钟树。

对于时钟,我们注意有两点。一个是系统时钟SYSCLK,一个是依赖外部晶振生成的RTC.

RTC以外部低速晶振作为时钟源或者外部高速晶振128分频后作为时钟源,又或者以内部低速时钟,三选一。我们一般用外部低速晶振。

我们的开发板一般会接两个外部晶振,一高速一低速。

系统时钟也是三选一,内部高速时钟,外部高速时钟和PLLCLK。

PLL:8MHZ外部高速晶振不分频走入PLLSRC,然后倍频(九倍频)作为系统时钟。

虽然有内部,但一般我们都会选择外部晶振,因为内部时钟稳定性不高。但在最先启动单片机上外部晶振时,会有一段起振时间,先得启动内部时钟,二分频后接入PLLSRC.

这几种路径都是为了得到系统总线时钟AHB,也叫高速系统总线,到了AHB这里就不分频了,就是最大72MHZ。

Cortex系统时钟默认8分频,也就是9Mhz,他其实就是SYSTICK系统时钟(系统滴答定时器)。

在连接外设的时候,会有APB1/APB2这样的桥接。APB1前面时72MHZ的AHB,在这里必须至少要二分频。因为APB1他的最大时钟频率36Mhz。

这张图是芯片的总线架构,很清楚的张列了挂载在系统总线上的外设。同一类外设也会挂载在不同速度的总线上,比如USART1,波特率115200.

比如I2C1 I2C2是低速总线,挂在APB1上。

2.调试口

最简易的调试口,除了SWD引脚外,就只有供电和接地引脚。只满足程序烧写功能。

我们用的STink调试口,则包含了串口输出和输入。8针排座,可以串口转USB。

SWD仿真引脚,也是一跟数据线,一根时钟线,和I2C线很像,但I2C是半双工,SWD引脚烧写是单向传输的,不可能反过来烧录程序。

我们基本用老套方式开发,寄存器写法和调取HAL库。

3.点灯

这是我们开发32的最基本的工程,里面用到的就是GPIO。

复用功能,是来自片上外设,GPIO内部集成了这种外设,就能被复用。

每个gpio拥有的模块功能可以选择,但不能改变,这是提前设计好的。

4.USART外设

异步通信 一根线收发全双工交换数据

串口与IIC不同

5.IIC协议

串行同步半双工,SDA SCL双线设备,开漏模式往往外接上拉电阻保证电平能起来。

IIC最重要的就是时序。

读字节时有假写真读的过程。

无论写还是读,都要主设备想从设备发送一个要指定访问的内部寄存器地址。

相关推荐
fengfuyao9857 小时前
STM32如何定位HardFault错误,一种实用方法
stm32·单片机·嵌入式硬件
爱学习的颖颖8 小时前
EXTI外部中断的执行逻辑|以对射式红外传感器计次为例
单片机·嵌入式硬件·exti中断
keer_zu9 小时前
STM32L051 RTC闹钟配置详解
stm32·嵌入式硬件
AI精钢9 小时前
H20芯片与中国的科技自立:一场隐形的博弈
人工智能·科技·stm32·单片机·物联网
etcix12 小时前
implement copy file content to clipboard on Windows
windows·stm32·单片机
谱写秋天12 小时前
在STM32F103上进行FreeRTOS移植和配置(STM32CubeIDE)
c语言·stm32·单片机·freertos
globbo16 小时前
【嵌入式STM32】I2C总结
单片机·嵌入式硬件
玖別ԅ(¯﹃¯ԅ)17 小时前
SysTick寄存器(嘀嗒定时器实现延时)
stm32·单片机·嵌入式硬件
limitless_peter17 小时前
集成运算放大器(反向比例,同相比例)
嵌入式硬件·硬件工程
Blossom.11818 小时前
把 AI 推理塞进「 8 位 MCU 」——0.5 KB RAM 跑通关键词唤醒的魔幻之旅
人工智能·笔记·单片机·嵌入式硬件·深度学习·机器学习·搜索引擎