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

基于stm32编程思路经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-11 18:31
1.跑马灯:
1 a" K! Y! ^( |# B使用GPIO输出,在主程序中控制灯的亮灭。6 e* D# ]3 }7 F3 T# P

: s/ C3 k9 n% E0 _( a. v& H$ `2.beep:
" n- x, O; C9 T使用GPIO输出,在主程序中控制响。& E0 W( L% ]/ n$ _* \( ]+ s
4 Y8 Q0 O, G/ F
3.KEY:$ u  f) ]! U& i* W
使用GPIO输入,宏定义端口状态的标识和长按使能标识,通过中断服务程序判断情况,实现扫描按键,分别返回值。
+ u; ]8 `1 Q' o' w4 F: N

' Z2 j0 D5 W7 X3 X( N6 R2 {( H4.串口通信:. r6 q- X4 K- v+ H: {: a( l
1.寄存器:SR(状态),DR(数据),BRR(波特率)
  \% D% I; ~5 |+ e4 W2.波特率计算:波特率=Fplck/(16*USARTDIV);1 T6 r+ Q+ o  c& D7 g( v+ A, q
(1) Fplck是串口时钟;plck1-uart2345;plck2-1;) Y6 @5 |) e1 K3 |
(2) 根据波特率,plck,计算DIV。) a- C: E! A+ \% v
3.初始化:
- Q2 \; l. D5 _! `; y. k6 B8 ~; O(1)配置串口:时钟,GPIO,串口参数,中断使能+中断,使能。
) u1 r6 N. B- p# }  t& l7 l(2)定义状态标识和接收存储数组。
9 g9 j3 N0 P$ t/ H! X+ B(3)中断服务:根据状态位编。
! G% e# j/ |0 _$ Z* z" S" r, ^状态标识符:1.常用8位作为标识符,7作为完成,6作为上阶段完成,5~0作为标号等。
& n9 W; a3 m' \* b& V  D( X接收存储:这里使用数组存储,状态标识符5~0作为数组序号。2 M( M6 W8 ^# [. E
) l+ z% n$ ]: v; H
5.看门狗:7 {9 X; u" ]  l! K4 n: g% S3 _
(1)独立看门狗:4 p+ ^; A9 H- {" t" L/ Q# n; w
(a)LSI驱动,不需配置时钟;
- n: ]* a) J5 r* |0 H% ?1 k(b)从复位值计数到0产生复位;
6 ?' G3 h1 E4 [# _7 m1 e1 g# w  o(c)组成:预分频(PR),状态(SR),重装载(RLR),键(KR,控制),计数器(CNT);要先取消写保护。' a) [5 L; V) y3 i5 u/ b8 Z+ T
(d)溢出时间:T=((4*2prep)*rlr)/40;prep分频系数,rlr计数值,40khz是LSI的频率。
) z% J* q4 l: c5 X7 t& ]

- D8 ?" ^4 F# |5 @" y0 Z(2)窗口看门狗:
( Y% e; t9 f/ J2 J3 N(a)设定值-a-上窗口值-b-下窗口值(0x3f); a段喂狗,计数到下窗口值均复位,b段喂狗则重新计时。到下窗口可开启提前唤醒中断来喂狗;; j" J9 J  m' J/ X7 a* t$ ]
(b)寄存器:控制(CR)包括使能看门狗,计数器;配置(CFR):唤醒中断,预分频,上窗口值。9 a( f" ^9 o; X. }+ _9 z6 v/ i
(c)窗口看门狗通过使能指令来喂狗;
: R' k! v4 r' m0 {) J; t% U/ J& k& k7 K1 j; \: r

" B. ?2 d4 ]% t6.定时器3 d' o$ @1 m9 J  _* W
1.T1,8高级定时器;T2~5通用定时器;T6,7基本定时器;  j0 I; j- ^4 P. @3 u
2.组成:4 m! E6 G7 C9 h: u0 M
a 时钟来源:4种来源:内部APB;外部引脚ETR;其他定时器;外部通道CH1~4
, ?2 ~6 b8 c7 \& ]$ `; _  Z, A+ y! cb 时基单元:分频器,重装载;计数器
. f' z* Z1 B# Nc 输入捕获:通道(ch1~4)–TIx–输入滤波和边沿检测–ICx–预分频–捕获比较寄存器;/ \* J% ~; U- A! G0 t! e1 C
d 输出比较:设定值与计数值CNT相比,><分别输出反相电平。(设定值:周期;比较值:占空比)8 f0 g+ d: t2 h6 N& U2 a
3.输入捕获:初始化;定义状态标志STA,TIM值VAL;. z# R7 Z5 F" C5 U- @8 n, I
STA:7完成,6捕获到高电平;5~0溢出次数;  F, y# g! r0 A
VAL:存储tim值
: j7 j5 m* C) e0 m7 \( b  L; M中断服务: 对STA分别考虑溢出,接收到上下脉冲的情况;
" H4 l$ V# O6 e$ q! y. a+ m4 O主函数:使用STA判断是否完成,计算总时间=溢出次数*溢出总时间+TIM当前值
; r/ W; \, F* F3 \1 R4 W+ c( h————————————————9 z: s( }- [- B9 j) W& j
版权声明:那我就是菠萝味吧
# X3 t& x- h3 n: S如有侵权请联系删除
. H* B4 Z7 p' Q1 F
& I! P/ _$ q  Z2 Y6 z. I! k4 I% e8 A! X- _
赞 收藏 评论0 发布时间:2023-5-11 18:31

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版