1 STM32&ARM介绍
- MDK下载
- 支持包安装
- 破解
- stlink驱动安装
2 程序安装
- start
- library
- main
- 设置中调用库函数文件
- 调试选择stlink 编译run and restart
3 GPIO
GPIO寄存器 端口配置低寄存器+端口配置高寄存器
端口输入寄存器 保留+低16
端口输出寄存器 保留+低16
端口位设置/位清除寄存器 高清除,低设置 ,(1执行,0无影响)
端口清除寄存器 保留+低16(位清除)
端口配置锁定清除器
4 面包板
- 有4排横着的金属爪,用来引用电源正负极
- 剩下的是竖着的金属爪,通过元件和导线联通闭合回路
- 代码编译后需要下载才能点亮LED
- A15,B3,B4这三个口暂时不要配置是调试端口
5 调试方式
- 串口调试
- 显示屏
- keil
- 点灯调试
- 注释调试
6 TIM定时中断
- 中断函数尽量简单
- 不要在中断函数和主函数调用相同的变量和硬件
- PSC是预分频器,调整高低电平的周期
- ARR是计数器,计数器溢出时进入中断
7 TIM输出比较&输入捕获
7.1输出比较
7.2死区生成和互补输出
在推挽电路中不允许两个MOS管同时导通,会短路,于是使用一个互补输出,当上面MOS管导通,下面MOS管断开,因为是切换开关变化是瞬间发生的,可能存在电路延缓,使得MOS管同时导通,死区生成电路能够延缓,比如说下管关闭延时一段时间,再导通上管...
7.3PWM电极驱动芯片
7.4输入捕获
TIM编码器接口
8 ADC
单次转换
连续转化
单次转换扫描模式
连续转化扫描模式
9 DMA
CPU对DMA进行相应的配置->硬件外设触发/软件触发->DMA读取寄存器数据并写入到另一个寄存器
注意:Flash是只读ROM,无法作为寄存器接收对应的数据
开关打开,触发,传输计数器不为0时,DMA会进行数据的转运,从一个寄存器转到另一个寄存器,直到传输计数器为0。其中自动重装器是为了循环使用,硬件触发一般适用于外设,软件触发适用于内部寄存器的转运。
写传输计数器时,必须关闭开关控制器。
数据宽度,外设到存储器,超了高位补0,少了高位丢失。
10 USART
串口数据包
HEX数据包
文本数据包
Boot_Loader
当需要使用串口下载程序时,需要将Boot切换到0,这样然后将程序下载进去,Boot再切换到1,复位后就能编译程序了。
11 I2C
I2C特点介绍
实现单片机连接外部寄存器,进行读写功能
自带上拉电阻,进行I2C通信时,无需再进行配置
数据高位先行
对于相同设备作为从机,可以通过修改他的地址来区别
● 半双工通信(一根数据传输线)
● 应答机制
● 可接多个外设,互不干扰
● 同步时序
时序
(1)起始终止
(2)发送一个字节 :(主机单片机->从机外设芯片)
SCL 置低电平,此刻SDA可以改变电平表示0和1;
SCL高电平读取SDA的数据,从机在SCL上升沿读取SDA数据
SCL下降,置低电平,主机在SCL下降沿时候,将数据放在SDA上传输下一位数据
(3)接收一个字节 :(主机单片机-从机外设芯片)
SCL 置低电平,此刻SDA可以改变电平表示0和1;
SCL高电平读取SDA的数据,从机在SCL上升沿读取SDA数据
SCL下降,置低电平,主机在SCL下降沿时候,将数据放在SDA上传输下一位数据
(4)应答
(5)数据帧
指定地址写
当前地址读
指定地址读
以上都是一个字节的读与写,若想发送多个字节,则需要在发送数据、接收数据处*n,而寄存器地址也跟随移动
MPU6050
6轴姿态传感器,检测欧拉角,3轴加速度计,具有静态稳定性;3轴陀螺仪传感器,具有动态稳定性。
-
自测,使能自测读取数据,失能自测读取数据,两个数据在芯片所规定的范围内则认为芯片正常
-
电荷泵升压,电源和电容并联,给电容充电,完成后串联得到一个倍数关系的电压。来回切换,加一个滤波就能获得升压效果,给陀螺仪提供高压。
-
采样时钟分频器f=f陀螺仪时钟/(分频+1)
-
配置寄存器,减小输出数据抖动,配置低通滤波器,陀螺仪时钟由8K-1KHz
-
陀螺仪寄存器
-
加速度寄存器
-
数据寄存器(陀螺仪,加速度,温度...)
高八位左移八位|低八位,存入int16_t里边,得到的就是测量的数据。 -
电源管理寄存器1
-
电源管理寄存器2
-
ID号(最后一位不随AD0变化,默认0x68)
所有寄存器上电默认0x00(一个为0x68,一个为0x40),即需要解除睡眠模式
I2C外设
硬件I2C的波形更加规整,软件模拟I2C更加灵活,不受硬件电路影响。
12 SPI
SPI介绍
(1)起始和终止
(2)数据交换
指定地址写
指定地址读
W25Q64(Flash闪存)
存储空间->块->扇区->页,每页256byte
状态寄存器1
Busy:1进入忙状态,不响应
Wel:1写使能,可以进行写操作,之后会自动置0
指令集
SPI硬件外设
13 Unix时间戳
以1970年1月1日00:00:00开始计时得到的一个秒数
GMT:以伦敦的格林尼治为标准,将地球绕太阳转一圈的时间分为24小时,其他时区需要进行相应的偏移
UTC:铯原子的多少周期为1秒标准,进行计数,因为地球越转越慢,会出现误差,每出现0.9秒误差设置一闰秒
14 BKP&RTC
15 PWR电源控制
主频越低,耗电越少,大概成正比关系
No Target Connected 错误需要按住Reset再点击下载松开Rest
16 WDG看门狗
看门狗启用后,不能关闭
窗口看门狗启用时,T6必须给1
17 Flash闪存
● 使用内部闪存读写数据时,CPU会暂停,中断会暂停
● 指定地址没有擦除,无法执行编程并警告,除非写入数据为0x0000
● 指定地址为写保护,无法执行编程并警告
● 当闪存保护由保护变为未保护,会自动执行擦除
● WRPx写保护的位1有效,0无效
● FPEC键寄存器(大锁) OPTKEY(小锁) 写入Key1,再写入Key2解锁