当前位置:网站首页>【我的电赛日记(三)】STM32学习笔记与要点总结
【我的电赛日记(三)】STM32学习笔记与要点总结
2022-08-02 14:08:00 【Ziraffe】
STM32学习笔记
这个是我在学习STM32时总结的一些笔记 很多地方可能只有我自己可以看懂 等以后有时间再进行维护 为了防止遗漏还是写成博客记录一下吧:
1.
在.h文件中,为防止头文件内容重复定义,经常会有这样的代码:
#ifndef
#define
......
#endif
2.
GPIO只有在设置为输出时才需要设置速度,如:
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度 50MHz
3.
在延时函数delay.c中设置时钟源的要点:
SysTick_CLKSourceConfig(); //systick时钟源选择
SysTick_Config(uint32_t ticks); //初始化systick,时钟为HCLK,开启中断
1us 需要9个systick周期
1ms 需要9000个systick周期
4.
抢占优先级>响应优先级(同时发生时决定谁先响应)
优先级最高是0
中断优先级分组:2 2² 2³ …
void NVIC_Init()
5.
同步通信:带时钟同步信号传输 (SPI,IIC)
异步通信:不带时钟同步信号(UART通用异步 USART通用同步)
F103有3个USART,2个UART
串口号 | RXD | TXD | |
---|---|---|---|
PCLK2 72M | 1 | PA10 | PA9 |
PCLK1 | 2 | PA3 | PA2 |
PCLK1 | 3 | PB11 | PB10 |
PCLK1 | 4 | PC11 | PC10 |
PCLK1 | 5 | PD2 | PC12 |
6.
XXX_IRQn 中断通道
7.
4个通用定时器:TIM2~TIM5 4个中断
2个高级定时器:TIM1,TIM8 4个中断 有互补输出(多用于PWM电机控制)
2个普通定时器:TIM6~TIM7 无中断 主要用于驱动DAC
4个中断(独立通道CH1~CH4)
功能:(1)输入捕获 (2)输出比较 (3)输出PWM (4)单脉冲输出
Tout(溢出时间)=(ARR+1){(PSC+1)/TCLK }
TCLK不做处理时默认72M
PSC一般为7199
8.
定时器输出PWM时:
crr决定占空比
arr决定频率
9.
输入捕获时的特殊寄存器:
TIM5CH1_CAPTURE_STA
0~bit5 记录溢出次数
bit6 捕获到高电平标志位
bit7 捕获完成标志位
10.
三个ADC,各16个外部通道,2个内部通道,频率不能大于14MHZ
11.
DAC输出=Vref×(DOR/4095)
12.
DMA:外设与储存器无需cpu的通信
13.
FLASH:
32个1k字节/页 小
128个1k字节/页 中
256个2k字节/页 大
边栏推荐
猜你喜欢
随机推荐
spark优化
详解RecyclerView系列文章目录
spark中RDD与DF的关系
数据偏见的背后是什么
PyTorch(14)---使用现有的模型及其修改
spark资源调度和任务调度
MySQL知识总结 (三) 索引
MySQL知识总结 (六) MySQL调优
自定义圆形seekBar,超简单
【目标检测】YOLO v5 安全帽检测识别项目模型
Ehcache基础学习
UIWindow的makeKeyAndVisible不调用rootviewController 的viewDidLoad的问题
tensorflow实战之手写体识别
牛客刷题汇总(持续更新中)
LLVM系列第五章:全局变量Global Variable
机器学习---监督学习、无监督学习
boost库智能指针
Scala学习总结
神经网络可以解决一切问题吗:一场知乎辩论的整理
MySQL知识总结 (五) 锁