STMCU小助手
发布时间:2023-3-2 12:43
|
, r$ m& _$ U: p* G) t' |. e
, |, o. E4 m: u. d! c# j) \
, p* u& b3 r6 H# O. f
/ B# }( O7 |7 ^& R; Z
5 N* E$ P$ l5 u' h( D) z' I2 l" a
, a: x+ z: l- o9 d, m: |
# ^$ ^, U1 @- o# o6 K
( W; t; W. ^* ~9 g0 J
6 J* f9 [2 ?- L+ e
/ V& a& p" |' `, o 检测滴答定时器的正确之后把变量i和检测部分代码删掉即可。
j. g3 N) {7 v% o; k# w! y7 S uwTick是不断变化的,当刚上电的时候每1ms就会增加一次,因此会增加到很大6 G7 f+ d( }2 z 4 ?1 M; u# @/ s0 U7 a' B! r/ t+ e uwTick_Set_Point的值初值是0,所以if条件句不满足就会执行后边的代码。6 L" M$ r9 I y; p( [9 F ) m: U% n c1 A if条件句就做了减速处理。! `# s2 Q* C' S6 w # \3 O" o# L+ L/ ? ; G8 u3 \3 j1 _/ v: c 比如第一次没有按键Key_Val值就是0000 0000,第二次扫描是0000 0100,这样" H7 \; W" ~ S# o; a( H 情况1:100ms两次扫描,按键得到的结构从0(都没按下)到B4按下,产生了下降沿‘, D" L; A( |7 c; L- ^9 S7 I0 D0 Z# B Key_Val=4 0 D* h x: i* {. Z: p; o ucKey_Down=0000 0100 & (0000 0000^0000 0100)=0000 0100 & 0000 0100=48 r- V! @# ]8 d0 a { S$ ^) Y+ @ ucKey_Up=1111 1011 & 0000 0100 =0000 0000 = 0 ucKey_Old=44 L% ^" L3 Q; b* f 情况2:B4产生了下降沿,按键一直按着 R- P; b- m& V3 U' D/ a. a Key_Val=4 ucKey_Down=0000 0100 & (0000 0100^0000 0100)=0000 0100 & 0000 0000=0 ucKey_Up=1111 1011 & 0000 0000 =0000 0000 = 02 j" e- _7 R2 H. v/ V+ ?9 s5 Q3 A ucKey_Old=4 " i! k9 |" @- ^$ b* r 情况3:B4按键一直按着,随后弹起 Key_Val=0* z' C6 u$ w- h" h0 Y2 N" T ucKey_Down=0000 0000 & (0000 0100^0000 0000)=0000 0000 & 0000 0100=0 ucKey_Up=1111 1111 & 0000 0100 =0000 0100 = 4//上升沿产生 ucKey_Old=0 ———————————————— 版权声明:想要优秀点儿 |
经验分享 | 基于STM32G4芯片TIM+SPI+DMA应用示例
STM32G47x 双 Bank 模式下在线升级
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【经验分享】STM32G4之基本定时器
NUCLEO-G474RE 扩展 LSM6DSO 传感器数据融合实操演示全解析
经验分享 | STM32G474 高精度定时器同步功能全解析 从内部互联到多芯片协同的实现方案
经验分享 | STM32G4双BANK启动应用演示
STM32G4 LPTIM+DMAMUX 实现并行输出应用示例
实战经验 | LAT1578 SAU对NSC分区的影响
经验分享 | STM32G474 HRTIM Triggered-half模式实现两相交错电源180°相位同步方案
微信公众号
手机版