|
1.跑马灯:6 D: m$ {+ J+ w3 @/ j# U 使用GPIO输出,在主程序中控制灯的亮灭。 2.beep:& l( q1 q& M; g# }% p/ B 使用GPIO输出,在主程序中控制响。 # r- Y2 v" ]) H9 F& u- l5 | 3.KEY: 使用GPIO输入,宏定义端口状态的标识和长按使能标识,通过中断服务程序判断情况,实现扫描按键,分别返回值。 4.串口通信:' ]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; (2) 根据波特率,plck,计算DIV。 3.初始化: (1)配置串口:时钟,GPIO,串口参数,中断使能+中断,使能。 (2)定义状态标识和接收存储数组。6 o" h D2 l- ~) R (3)中断服务:根据状态位编。 状态标识符:1.常用8位作为标识符,7作为完成,6作为上阶段完成,5~0作为标号等。 接收存储:这里使用数组存储,状态标识符5~0作为数组序号。6 Z. b! Z5 p$ h" E5 M, Q4 q9 c 5.看门狗:" `, 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的频率。 (2)窗口看门狗: (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 6.定时器0 E+ q1 g0 H7 {' ]. N 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溢出次数;4 T0 P- | ~1 f& @. m. ^/ U VAL:存储tim值 中断服务: 对STA分别考虑溢出,接收到上下脉冲的情况;2 Q: f2 g1 c7 D2 k* w 主函数:使用STA判断是否完成,计算总时间=溢出次数*溢出总时间+TIM当前值1 U7 H z) A4 G8 ` ———————————————— 版权声明:那我就是菠萝味吧 如有侵权请联系删除 |
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版