stm32编程思路

2021/10/15 12:14:16

本文主要是介绍stm32编程思路,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.跑马灯
使用GPIO输出,在主程序中控制灯的亮灭。

2.beep
使用GPIO输出,在主程序中控制响。

3.KEY:
使用GPIO输入,宏定义端口状态的标识和长按使能标识,通过中断服务程序判断情况,实现扫描按键,分别返回值。

4.串口通信
1.寄存器:SR(状态),DR(数据),BRR(波特率)
2.波特率计算:波特率=Fplck/(16*USARTDIV);
(1) Fplck是串口时钟;plck1-uart2345;plck2-1;
(2) 根据波特率,plck,计算DIV。
3.初始化:
(1)配置串口:时钟,GPIO,串口参数,中断使能+中断,使能。
(2)定义状态标识和接收存储数组。
(3)中断服务:根据状态位编。
状态标识符:1.常用8位作为标识符,7作为完成,6作为上阶段完成,5~0作为标号等。
接收存储:这里使用数组存储,状态标识符5~0作为数组序号。

5.看门狗
(1)独立看门狗:
(a)LSI驱动,不需配置时钟;
(b)从复位值计数到0产生复位;
(c)组成:预分频(PR),状态(SR),重装载(RLR),键(KR,控制),计数器(CNT);要先取消写保护。
(d)溢出时间:T=((4*2prep)*rlr)/40;prep分频系数,rlr计数值,40khz是LSI的频率。

(2)窗口看门狗:
(a)设定值-a-上窗口值-b-下窗口值(0x3f); a段喂狗,计数到下窗口值均复位,b段喂狗则重新计时。到下窗口可开启提前唤醒中断来喂狗;
(b)寄存器:控制(CR)包括使能看门狗,计数器;配置(CFR):唤醒中断,预分频,上窗口值。
(c)窗口看门狗通过使能指令来喂狗;

6.定时器
1.T1,8高级定时器;T2~5通用定时器;T6,7基本定时器;
2.组成:
a 时钟来源:4种来源:内部APB;外部引脚ETR;其他定时器;外部通道CH1~4
b 时基单元:分频器,重装载;计数器
c 输入捕获:通道(ch1~4)–TIx–输入滤波和边沿检测–ICx–预分频–捕获比较寄存器;
d 输出比较:设定值与计数值CNT相比,><分别输出反相电平。(设定值:周期;比较值:占空比)
3.输入捕获:初始化;定义状态标志STA,TIM值VAL;
STA:7完成,6捕获到高电平;5~0溢出次数;
VAL:存储tim值
中断服务: 对STA分别考虑溢出,接收到上下脉冲的情况;
主函数:使用STA判断是否完成,计算总时间=溢出次数*溢出总时间+TIM当前值



这篇关于stm32编程思路的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程