Stm32
本文最后更新于141 天前,其中的信息可能已经过时,如有错误请发送邮件到2067965693@qq.com

系统框架

使用标注库

加入启动文件

添加文件路径

创建main函数

添加标注库

GPIO输入输出

按键消抖

中断

设置顺序为:RCC-AFIO-EXTI-NVIC

每个中断函数都有固定的中断名称

触发一个中断都会置为一个中断标志

定时器

RCCAPB1->选择内部时钟->时基单元->中断控制ITconfig->NVIC->运行控制cmd

T= 1/f

72MHz/7200=10kHz=10000Hz,去倒数得到时间(一次就是0.0001s),记10000次,就是1s

跟外部中断一样每个时间函数都有固定的名称

比较模式(PWM)OC

RCCAPB1->选择内部时钟->时基单元->CCR->GPIO->cmd启动

在线设置CCR的寄存值需要通过TIM_SetCompare来修改

正转由快到慢反转由慢到快

GPIO口的输出模式要选择复用推挽输出模式

引脚重映射

输入捕获IC

GPIO->IC捕获单元->时基单元->从模式触发源选择->从模式设置->cmd启动

编码器

GPIO->IC->encod编码器->时基单元->cmd启动

cnt计数由编码器控制不需要开启Tim3时钟及TIM_InternalClockConfig

ADC数模转换

GPIO->ADC->ADC时钟分频->ADC通道选择和采样时间->ADCInit模式配置->ADCcmd

DMA数据转运

AHB->DMAInit->AMDcmd

DMA和ADC多通道数据转运

通讯接口

https://blog.csdn.net/qq_52608074/article/details/122297014

串口通讯

GPIO->USARTInit->CMD

CRT流控

重定义fputc函数->printf底层函数使其输出到tx端口

中文编译报错

--no-multibyte-chars

接受字符串(手动接收)

自动中断接收

接收包数据

I2C

第一个传输数据要为接受方的id+一个读写位

第二个数据可以为指针位

MPU6050

#ifndef __MPU6050_RAG_H
#define __MPU6050_RAG_H

#define	MPU6050_SMPLRT_DIV		0x19
#define	MPU6050_CONFIG			0x1A
#define	MPU6050_GYRO_CONFIG		0x1B
#define	MPU6050_ACCEL_CONFIG	0x1C

#define	MPU6050_ACCEL_XOUT_H	0x3B
#define	MPU6050_ACCEL_XOUT_L	0x3C
#define	MPU6050_ACCEL_YOUT_H	0x3D
#define	MPU6050_ACCEL_YOUT_L	0x3E
#define	MPU6050_ACCEL_ZOUT_H	0x3F
#define	MPU6050_ACCEL_ZOUT_L	0x40
#define	MPU6050_TEMP_OUT_H		0x41
#define	MPU6050_TEMP_OUT_L		0x42
#define	MPU6050_GYRO_XOUT_H		0x43
#define	MPU6050_GYRO_XOUT_L		0x44
#define	MPU6050_GYRO_YOUT_H		0x45
#define	MPU6050_GYRO_YOUT_L		0x46
#define	MPU6050_GYRO_ZOUT_H		0x47
#define	MPU6050_GYRO_ZOUT_L		0x48

#define	MPU6050_PWR_MGMT_1		0x6B
#define	MPU6050_PWR_MGMT_2		0x6C
#define	MPU6050_WHO_AM_I		0x75

#endif
寄存器地址​​寄存器名称​​关键参数​​典型配置值​​作用​
​0x6B​PWR_MGMT_1CLKSEL[2:0](时钟源)、SLEEP(休眠模式)、DEVICE_RESET(复位)​0x01​解除休眠模式,选择X轴陀螺PLL时钟源
​0x19​SMPLRT_DIV采样分频因子(取值范围0-255)​0x07​采样率=1kHz/(1+7)=125Hz
​0x1A​CONFIGDLPF_CFG[2:0](数字低通滤波器带宽)​0x03​设置低通滤波器带宽为5Hz,延迟19ms
​0x1B​GYRO_CONFIGFS_SEL[1:0](陀螺仪量程:00=±250°/s,10=±1000°/s)​0x10​设置陀螺仪量程为±1000°/s(灵敏度32.8 LSB/°/s)
​0x1C​ACCEL_CONFIGAFS_SEL[1:0](加速度计量程:00=±2g,01=±4g)​0x08​设置加速度计量程为±4g(灵敏度8192 LSB/g)
​0x3B-0x48​数据寄存器加速度计(0x3B-0x40)、陀螺仪(0x43-0x48)存储16位原始数据(高字节在前,低字节在后)
​0x75​WHO_AM_I固定返回值0x68验证设备连接状态

SPI通信

https://blog.csdn.net/qq_52608074/article/details/122297014

CAN通讯

0帧+ID+读写帧+(扩展格式)+发送数据长度+数据+CRC校验+有没有人接收

PWR-BKP-备份寄存器

备份寄存器由

Vbat引脚为备用电源维持备份区域供电

RTC时钟

独立看门狗-窗口看门狗

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇