你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于stm32编程思路经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-11 18:31
1.跑马灯:- G% T, K+ v1 \. s
使用GPIO输出,在主程序中控制灯的亮灭。
- O+ p& R' H. f7 ~5 g- ?6 V
6 y" F* P, J# d; O1 L
2.beep:$ l, v% Q( t& v; Q5 U  T) W: d! d
使用GPIO输出,在主程序中控制响。
6 I2 j; y0 r0 E6 r2 o# e" n" v) ]
5 L1 ~0 U7 i$ ?' g7 L, m( ]
3.KEY:. E1 [: Q" u& p
使用GPIO输入,宏定义端口状态的标识和长按使能标识,通过中断服务程序判断情况,实现扫描按键,分别返回值。1 \3 t* `& d& C, S
' j! f/ x3 d1 P  A' Y& V
4.串口通信:
- g8 V1 c. _" b8 E7 R6 u1.寄存器:SR(状态),DR(数据),BRR(波特率)+ C6 q: g/ c( J; u* j
2.波特率计算:波特率=Fplck/(16*USARTDIV);
. z. J7 ]4 E7 y& i$ o3 `(1) Fplck是串口时钟;plck1-uart2345;plck2-1;
$ E: ^, ]7 Q' V7 U3 o(2) 根据波特率,plck,计算DIV。
( r0 @3 |( H. {/ R4 E: Z* V3.初始化:. U/ ~5 ]0 y$ o; @; d5 m: A
(1)配置串口:时钟,GPIO,串口参数,中断使能+中断,使能。, {4 j8 e$ i% F( R
(2)定义状态标识和接收存储数组。
* U' B8 `; k3 _  `7 V/ `(3)中断服务:根据状态位编。2 f: ~0 ]+ [8 l3 p0 v0 D
状态标识符:1.常用8位作为标识符,7作为完成,6作为上阶段完成,5~0作为标号等。) [" h$ a$ \4 I% [( @3 v& X
接收存储:这里使用数组存储,状态标识符5~0作为数组序号。
: ]& y* f+ X0 A$ ?, E+ E

6 I  C4 L$ ^  u7 B2 }6 p5 ], g5.看门狗:0 @3 k8 \/ v. C- [
(1)独立看门狗:8 A; J" |$ ^2 g: b$ S
(a)LSI驱动,不需配置时钟;
  v% [# T$ E% V$ M$ a(b)从复位值计数到0产生复位;1 y( d' B/ q: y( p& C3 ]& y: S, t
(c)组成:预分频(PR),状态(SR),重装载(RLR),键(KR,控制),计数器(CNT);要先取消写保护。! p) Y) G& r" E5 x6 e0 k$ X1 f1 K0 c( O
(d)溢出时间:T=((4*2prep)*rlr)/40;prep分频系数,rlr计数值,40khz是LSI的频率。7 A' D. o4 l6 {) |% \2 |

/ f  ]4 z% k2 k6 u& z$ q(2)窗口看门狗:
- y; `' C, F- h" B4 D(a)设定值-a-上窗口值-b-下窗口值(0x3f); a段喂狗,计数到下窗口值均复位,b段喂狗则重新计时。到下窗口可开启提前唤醒中断来喂狗;4 F2 \! E. ^. I/ y2 T/ i
(b)寄存器:控制(CR)包括使能看门狗,计数器;配置(CFR):唤醒中断,预分频,上窗口值。$ L: s- X# F+ Z& D4 ?. j
(c)窗口看门狗通过使能指令来喂狗;# F9 a( \- E# m$ K* l/ i& I
4 N- M# k1 H/ [: i% b- w

# M, Q- ^1 t$ E6.定时器: D+ }/ \- f' I/ @# {  ^
1.T1,8高级定时器;T2~5通用定时器;T6,7基本定时器;/ u& p" d) ~: O
2.组成:8 t  m/ i* ?9 V, r+ C
a 时钟来源:4种来源:内部APB;外部引脚ETR;其他定时器;外部通道CH1~4* h) O+ r8 \' {( L. S
b 时基单元:分频器,重装载;计数器
: X6 P5 h; G; A. Dc 输入捕获:通道(ch1~4)–TIx–输入滤波和边沿检测–ICx–预分频–捕获比较寄存器;5 T. h8 J3 h$ p3 Z* S: g, a
d 输出比较:设定值与计数值CNT相比,><分别输出反相电平。(设定值:周期;比较值:占空比)3 g% t2 J4 F9 Q4 A% c7 l
3.输入捕获:初始化;定义状态标志STA,TIM值VAL;! m: O3 P% K% p2 C  }+ |! v. K
STA:7完成,6捕获到高电平;5~0溢出次数;/ @' o# b% h+ z* |, }
VAL:存储tim值  `3 c3 v$ h, K! {; m
中断服务: 对STA分别考虑溢出,接收到上下脉冲的情况;
  m; R; K8 o% U! N. M. J- M主函数:使用STA判断是否完成,计算总时间=溢出次数*溢出总时间+TIM当前值
4 r  q7 C/ |- s9 M: u5 n% ~————————————————* c$ O5 ]5 E. N3 T8 S$ J/ l
版权声明:那我就是菠萝味吧& ~9 q" E2 }" d% v+ V! T4 @
如有侵权请联系删除
; R5 I. p7 Y* m) Y
' r& B" T2 Y, I# \) j5 F) R+ `+ o7 t. m% V7 C( l
收藏 评论0 发布时间:2023-5-11 18:31

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版