32单片机

1 STM32&ARM介绍

  1. MDK下载
  2. 支持包安装
  3. 破解
  4. stlink驱动安装

2 程序安装

  1. start
  2. library
  3. main
  4. 设置中调用库函数文件
  5. 调试选择stlink 编译run and restart

3 GPIO

GPIO寄存器 端口配置低寄存器+端口配置高寄存器

端口输入寄存器 保留+低16

端口输出寄存器 保留+低16

端口位设置/位清除寄存器 高清除,低设置 ,(1执行,0无影响)

端口清除寄存器 保留+低16(位清除)

端口配置锁定清除器

4 面包板

  1. 有4排横着的金属爪,用来引用电源正负极
  2. 剩下的是竖着的金属爪,通过元件和导线联通闭合回路
  3. 代码编译后需要下载才能点亮LED
  4. A15,B3,B4这三个口暂时不要配置是调试端口

5 调试方式

  1. 串口调试
  2. 显示屏
  3. keil
  4. 点灯调试
  5. 注释调试

6 TIM定时中断

  1. 中断函数尽量简单
  2. 不要在中断函数和主函数调用相同的变量和硬件
  3. PSC是预分频器,调整高低电平的周期
  4. ARR是计数器,计数器溢出时进入中断

7 TIM输出比较&输入捕获

8.1输出比较

8.2死区生成和互补输出

在推挽电路中不允许两个MOS管同时导通,会短路,于是使用一个互补输出,当上面MOS管导通,下面MOS管断开,因为是切换开关变化是瞬间发生的,可能存在电路延缓,使得MOS管同时导通,死区生成电路能够延缓,比如说下管关闭延时一段时间,再导通上管...

8.3PWM电极驱动芯片

8.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轴陀螺仪传感器,具有动态稳定性。

  1. 自测,使能自测读取数据,失能自测读取数据,两个数据在芯片所规定的范围内则认为芯片正常
  2. 电荷泵升压,电源和电容并联,给电容充电,完成后串联得到一个倍数关系的电压。来回切换,加一个滤波就能获得升压效果,给陀螺仪提供高压。
  3. 采样时钟分频器f=f陀螺仪时钟/(分频+1)
  4. 配置寄存器,减小输出数据抖动,配置低通滤波器,陀螺仪时钟由8K-1KHz
  5. 陀螺仪寄存器

  1. 加速度寄存器

  1. 数据寄存器(陀螺仪,加速度,温度...)

高八位左移八位|低八位,存入int16_t里边,得到的就是测量的数据。

  1. 电源管理寄存器1

  1. 电源管理寄存器2

  1. 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解锁

 

posted @   Aaryn21  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示