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

基于stm32编程思路经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-11 18:31
1.跑马灯:6 D: m$ {+ J+ w3 @/ j# U
使用GPIO输出,在主程序中控制灯的亮灭。
) s, Q' X" \4 D/ G0 `7 Q

# I$ ]% t+ G8 q0 n3 h( C2 k2.beep:& l( q1 q& M; g# }% p/ B
使用GPIO输出,在主程序中控制响。
- P3 q; Y6 Z9 k+ z. v' |0 h. N
# r- Y2 v" ]) H9 F& u- l5 |
3.KEY:
! a) _7 y( x; s. {使用GPIO输入,宏定义端口状态的标识和长按使能标识,通过中断服务程序判断情况,实现扫描按键,分别返回值。
  X( h4 `3 e' i+ X/ d) S, {

8 H- ~' i0 e5 N4 b* E4.串口通信:' ]4 f, U6 A& R$ F- R7 ]* y
1.寄存器:SR(状态),DR(数据),BRR(波特率)  M/ R. U2 E; L5 C: ]5 s+ U8 r
2.波特率计算:波特率=Fplck/(16*USARTDIV);& o. \, [) P% m& M. _
(1) Fplck是串口时钟;plck1-uart2345;plck2-1;
( D( g1 W" C% m; l(2) 根据波特率,plck,计算DIV。
2 F! I. ~. V4 O3.初始化:
' D4 U8 L! M$ P( n7 R8 G(1)配置串口:时钟,GPIO,串口参数,中断使能+中断,使能。
  X3 @' S" F$ k(2)定义状态标识和接收存储数组。6 o" h  D2 l- ~) R
(3)中断服务:根据状态位编。
* a4 g8 x4 r- [! K& T2 J状态标识符:1.常用8位作为标识符,7作为完成,6作为上阶段完成,5~0作为标号等。
: h) I: a9 d7 L接收存储:这里使用数组存储,状态标识符5~0作为数组序号。6 Z. b! Z5 p$ h" E5 M, Q4 q9 c

- h# R+ o0 O" r& U5.看门狗:" `, g# Q" R  U" d! B8 o( M; ?
(1)独立看门狗:) T% I8 b6 B3 ]5 H9 H5 u
(a)LSI驱动,不需配置时钟;- W+ o2 V2 R% M0 L
(b)从复位值计数到0产生复位;2 F0 N: e  L& x' L; m) M( B+ o
(c)组成:预分频(PR),状态(SR),重装载(RLR),键(KR,控制),计数器(CNT);要先取消写保护。3 H9 a2 s) X. P1 }
(d)溢出时间:T=((4*2prep)*rlr)/40;prep分频系数,rlr计数值,40khz是LSI的频率。
  v6 U* Q. C# X4 M

+ {$ u! b7 t* s(2)窗口看门狗:
0 a0 I+ s6 B7 _(a)设定值-a-上窗口值-b-下窗口值(0x3f); a段喂狗,计数到下窗口值均复位,b段喂狗则重新计时。到下窗口可开启提前唤醒中断来喂狗;5 v; H: s5 T' J9 d( m  t
(b)寄存器:控制(CR)包括使能看门狗,计数器;配置(CFR):唤醒中断,预分频,上窗口值。- f" Q' h% c# w3 P
(c)窗口看门狗通过使能指令来喂狗;" F4 N- q) b4 I( L7 K! e- o

* u5 C$ V, u% G2 L1 `" a

2 E/ v$ X# t+ r2 ~6.定时器0 E+ q1 g0 H7 {' ]. N
1.T1,8高级定时器;T2~5通用定时器;T6,7基本定时器;
" ]$ Q1 N8 d2 p8 {6 A& M2.组成:
+ ~7 i; ]/ v: R. N1 va 时钟来源:4种来源:内部APB;外部引脚ETR;其他定时器;外部通道CH1~4
, q4 |/ f% X0 H! vb 时基单元:分频器,重装载;计数器
2 V2 E) k& o  m: J2 b% Vc 输入捕获:通道(ch1~4)–TIx–输入滤波和边沿检测–ICx–预分频–捕获比较寄存器;
: n& {. X9 x) q; L6 X9 [+ [+ fd 输出比较:设定值与计数值CNT相比,><分别输出反相电平。(设定值:周期;比较值:占空比)
. r2 ^+ b8 J) E7 A" T3.输入捕获:初始化;定义状态标志STA,TIM值VAL;
2 w& A. {) H# F; iSTA:7完成,6捕获到高电平;5~0溢出次数;4 T0 P- |  ~1 f& @. m. ^/ U
VAL:存储tim值
+ K) Q, }6 x8 E! T4 Q& r中断服务: 对STA分别考虑溢出,接收到上下脉冲的情况;2 Q: f2 g1 c7 D2 k* w
主函数:使用STA判断是否完成,计算总时间=溢出次数*溢出总时间+TIM当前值1 U7 H  z) A4 G8 `
————————————————
4 U1 R: f& ^* M, f, T" p% D* j版权声明:那我就是菠萝味吧
5 _. a8 g% W8 O3 A如有侵权请联系删除
- M$ ~0 V9 [7 b! z
0 a6 p; A3 _. d' j% Q8 ]  y' o8 e7 Z5 B
7 I, c0 a2 S! @8 T
赞 收藏 评论0 发布时间:2023-5-11 18:31

举报

0个回答

所属标签

相似技术帖

官网相关资源

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