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

基于stm32编程思路经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-11 18:31
1.跑马灯:
' Q0 c7 N0 c9 |使用GPIO输出,在主程序中控制灯的亮灭。  }* H0 _7 ?4 B" z  a
& V' u2 R) x, k
2.beep:
. y8 ~( \& `; {, J0 q使用GPIO输出,在主程序中控制响。8 \& y, I. C+ f

: y" m& c2 `4 E" N% _0 w$ s' w3 G3.KEY:4 b) ~2 I8 o) l/ k- ^+ P% i9 O
使用GPIO输入,宏定义端口状态的标识和长按使能标识,通过中断服务程序判断情况,实现扫描按键,分别返回值。. H1 z8 S; d% Y0 F  P$ I2 T

! E, b$ E( A7 G4.串口通信:8 `$ _8 F" X0 Y1 D0 Y% h- k4 |4 n1 F
1.寄存器:SR(状态),DR(数据),BRR(波特率)
! W6 Z$ j# z" [8 \6 o( d5 \2.波特率计算:波特率=Fplck/(16*USARTDIV);
4 r6 O/ j8 }1 Q! S(1) Fplck是串口时钟;plck1-uart2345;plck2-1;( {, s, w, I& @$ _/ ]
(2) 根据波特率,plck,计算DIV。
* P% ?! G# Y  [) ]0 T1 x3.初始化:1 g! u8 j9 A4 h4 ~
(1)配置串口:时钟,GPIO,串口参数,中断使能+中断,使能。# K, d3 N, @$ T# O, L$ {& _8 D
(2)定义状态标识和接收存储数组。3 k  i$ R; t) H+ N8 j
(3)中断服务:根据状态位编。; C& b7 M# A* G0 c" S4 C5 S2 T
状态标识符:1.常用8位作为标识符,7作为完成,6作为上阶段完成,5~0作为标号等。
/ f) ?2 m% K$ ]4 T8 p/ x, N接收存储:这里使用数组存储,状态标识符5~0作为数组序号。7 M% F( m. h6 I% f* H3 x
, n* |; U( J* M4 P- B6 y0 v/ g
5.看门狗:
$ q, K& l; k" q- M: D( ^+ g" X(1)独立看门狗:0 c" ~4 Z% p6 `0 u6 ^4 A0 _7 M
(a)LSI驱动,不需配置时钟;) n( m( l6 n# f/ _
(b)从复位值计数到0产生复位;
! V0 i& f/ e% j! k% ~7 d7 z(c)组成:预分频(PR),状态(SR),重装载(RLR),键(KR,控制),计数器(CNT);要先取消写保护。
& s. N9 I( \2 K& s% z(d)溢出时间:T=((4*2prep)*rlr)/40;prep分频系数,rlr计数值,40khz是LSI的频率。
% R! U2 J5 Q0 b+ k
% u2 ]+ U% q+ ^7 h1 w6 e
(2)窗口看门狗:
. \% ]. x( t) V: |8 K(a)设定值-a-上窗口值-b-下窗口值(0x3f); a段喂狗,计数到下窗口值均复位,b段喂狗则重新计时。到下窗口可开启提前唤醒中断来喂狗;
2 n" F6 s. T4 g$ n4 k2 u(b)寄存器:控制(CR)包括使能看门狗,计数器;配置(CFR):唤醒中断,预分频,上窗口值。
6 y7 B$ C: d* U6 G; U(c)窗口看门狗通过使能指令来喂狗;
1 E1 u: M! _3 y9 P9 m3 G" s2 v9 S) q" o- a/ ]) g
% Q9 I+ F# \- U& T: x; ?8 H
6.定时器
& q# ^' c% o: C1 O1.T1,8高级定时器;T2~5通用定时器;T6,7基本定时器;
$ s/ [5 j1 h3 j  Z: u# t2.组成:
! D. L. B" p3 o) h' za 时钟来源:4种来源:内部APB;外部引脚ETR;其他定时器;外部通道CH1~4
5 p' e0 z& _7 U6 e, T: z/ Ib 时基单元:分频器,重装载;计数器
. Z" [! N( y2 b9 {% ic 输入捕获:通道(ch1~4)–TIx–输入滤波和边沿检测–ICx–预分频–捕获比较寄存器;
9 s3 J# \( J2 ^4 K5 x( `) x- `$ U' J- `  od 输出比较:设定值与计数值CNT相比,><分别输出反相电平。(设定值:周期;比较值:占空比)
9 V1 H+ b! p, ~- }$ R0 t8 x3.输入捕获:初始化;定义状态标志STA,TIM值VAL;
) D! G9 V, ]) c0 w3 m' JSTA:7完成,6捕获到高电平;5~0溢出次数;( ]( L' u. j) Y; e' F4 h
VAL:存储tim值5 s' e  n; T0 s/ x; U
中断服务: 对STA分别考虑溢出,接收到上下脉冲的情况;# `. j+ p% Z/ [/ D
主函数:使用STA判断是否完成,计算总时间=溢出次数*溢出总时间+TIM当前值0 `0 y2 ^2 t0 ^$ @% t2 d
————————————————
% {' }' Q, O# ~- Y2 \+ o- D0 Y$ M版权声明:那我就是菠萝味吧" q5 O' C, K0 `" U" _! E
如有侵权请联系删除
( j% A0 X+ i% h; X) T
0 C2 N% J$ H% m) M
" g1 o/ L9 \) _/ q
收藏 评论0 发布时间:2023-5-11 18:31

举报

0个回答

所属标签

相似技术帖

官网相关资源

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