單片機(jī)項(xiàng)目可以分為以下ABC三種處理架構(gòu):
A.可以采用先標(biāo)記狀態(tài),后根據(jù)狀態(tài)處理事件【狀態(tài)機(jī)模式】
detectEvents():標(biāo)記全部事件【GPIO事件、電池事件、開始治療事件】
processEvents():處理全部事件【GPIO事件、電池事件、開始治療事件】
B.根據(jù)不同的功能一邊標(biāo)記一邊處理,
detectProcessGPIOEvent():處理按鈕事件
detectProcessBatteryEvents():監(jiān)測和處理電池電量
processOtherEvents():處理其他事件
C.初始化的時候傳入鉤子函數(shù)(傳入函數(shù)指針),實(shí)現(xiàn)一體化處理
1.初始化并且設(shè)定系統(tǒng)定時器,SysTick_Config(48000 / systickScale);
2.SysTick_Handler(void) 記錄系統(tǒng)時間,處理外部按鍵點(diǎn)擊detectGPIOEvent,處理其他系統(tǒng)事件【ADC電壓監(jiān)測,蜂鳴器工作,3分鐘停止工作,低電壓指示燈工作狀態(tài) 】,
注意電量監(jiān)測,打印等耗時操作,每秒執(zhí)行一次即可。通過
define DebugMode 來?xiàng)l件編譯提高性能,否則會導(dǎo)致定時器中斷延時,系統(tǒng)時間不準(zhǔn)確。
注意蜂鳴器打開后一定要關(guān)閉電路,否則會持續(xù)耗電
uint32_t maxUint32_t = 4294967290;
///記錄上次治療的時間節(jié)點(diǎn)
uint32_t lastestTreatmentTime;
///記錄上次Beep的時間
uint32_t lastestBeepTime;
///工作時常3分鐘
int treatmentDurationInMS = 180 * 1000;
3.detectProcessGPIOEvent【處理按鈕事件】
A.處理按鈕按下,啟動事件
a.key_cnt 按鈕按下事件【通常單位1ms】
b.key_cnt_threshold消抖時間【通常10ms】
c.key_lock_flag避免重復(fù)觸發(fā)
d.isCharging【可選:充電的時候不觸發(fā)啟動】
e.batteryState【可選:電量過低的時候不觸發(fā)啟動】
B.處理充電口插入監(jiān)測
1.unplug_usbc_turn_off_blink_led_lock_flag【拔出USB時,如果LED指示燈還亮著,關(guān)閉LED指示燈,做個flag】
2.BlinkSystickGap * 2【不知道為啥 需要 *2】
3.treatmentOff【可選:停止治療】
4.拔出USB時,關(guān)閉電源,獨(dú)立看門狗喂狗
4.電量監(jiān)測:
enum BatteryState{
Full = 0,Ok,Low,TooLow
};
4.detectProcessBatteryEvents【監(jiān)測和處理電池電量】
a.電量低,治療時橙色燈閃爍
b.電量正常,治療時綠燈常亮
c.電量過低,直接關(guān)機(jī)
5.processOtherEvents【處理其他事件】
a.產(chǎn)品使用10分鐘后自動關(guān)機(jī)
上一篇:安富萊 STM32 按鍵檢測
下一篇:STM32學(xué)習(xí):I2C-EEPROM實(shí)驗(yàn)
推薦閱讀最新更新時間:2025-04-25 10:46


設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- LT1021CIN8-5 由電流源驅(qū)動的負(fù)分流基準(zhǔn)的典型應(yīng)用
- LT3970EDDB 2.5V 降壓轉(zhuǎn)換器的典型應(yīng)用
- tps65133驗(yàn)證板
- LTC3630AHMSE 12.5V 至 76V 輸入的典型應(yīng)用電路
- 直流無刷電機(jī)驅(qū)動板
- LT3970EMS-3.3 12V 降壓轉(zhuǎn)換器的典型應(yīng)用
- LT8410、2.5V16V 至 16V 升壓轉(zhuǎn)換器
- 64鍵直列鍵盤,帶數(shù)字小鍵盤【ATmega32A】
- 使用 NXP Semiconductors 的 TDA8927J 的參考設(shè)計(jì)
- ZSR330GTA 3.3伏固定正電壓穩(wěn)壓器的典型應(yīng)用
- 羅徹斯特電子與意法半導(dǎo)體正式展開合作
- ZDS2022示波器百集實(shí)操視頻之79:信號頻率穩(wěn)定度的測量
- 高通/Google聯(lián)手為雷諾集團(tuán)電動車開發(fā)全新座艙產(chǎn)品
- 大聯(lián)大世平集團(tuán)基于onsemi產(chǎn)品的300W超高效能網(wǎng)通電源方案
- 4.3、使用寄存器版本點(diǎn)亮LED燈(內(nèi)附代碼)
- STC15F104W流水燈程序
- 汽車網(wǎng)聯(lián)化與智能化協(xié)同發(fā)展共同按下“加速鍵”
- AT89S51單片機(jī)串行口的內(nèi)部結(jié)構(gòu)及功能介紹
- STM32單片機(jī)最小系統(tǒng)設(shè)計(jì)
- 潤石科技推出RS3215-Q1系列低壓差線性穩(wěn)壓器
- CANape 23開啟智能測試新時代(下)
- 軟件定義汽車電源管理設(shè)計(jì):NXP的PMIC選型攻略解析
- 深度測評時空壺X1同聲傳譯器:全球最先進(jìn)AI同傳設(shè)備的非凡實(shí)力
- 作為領(lǐng)先的垂直整合制造商(IDM),英飛凌在 300mm氮化鎵生產(chǎn)路線圖方面取得突破
- 鐵威馬F6-424 Max:六盤位擴(kuò)容+國產(chǎn)系統(tǒng)兼容,小白也能玩轉(zhuǎn)NAS
- 開關(guān)電源給鉛酸電池恒流恒壓充電的電流跳動問題解析
- 自動駕駛中的激光雷達(dá)是否會傷害攝像頭?
- 觸覺技術(shù)助力企業(yè)在激烈的市場競爭中脫穎而出
- 芯片中的串?dāng)_噪聲有幾類
- 免費(fèi)申請TI 樣片,曬單贏好禮!
- 大學(xué)必備設(shè)計(jì)課表出爐,先睹為快!
- Nexperia有獎直播|電動汽車中車規(guī)功率MOSFET和氮化鎵器件的介紹及應(yīng)用
- 【EEWORLD第三十五屆】2012年02月社區(qū)明星人物揭曉!
- 打卡英飛凌碳化硅MOSFET新品快閃店
- 下載有好禮|TE壓力傳感器解決方案
- 參加MSP430F5529培訓(xùn),長知識、免費(fèi)送、超低團(tuán)、搶樓得!
- 端午節(jié)芯幣兌換禮品專場
- TI 樣片免費(fèi)申請,曬樣片贏好禮☞2
- 免費(fèi)申請測評 | 泰坦觸覺 TITAN Core開發(fā)套件
- Moto Razr 5G新機(jī)將于2020年底前上市
- 聯(lián)想拯救者電競手機(jī)實(shí)錘:雙X軸線性馬達(dá),將發(fā)布
- 聯(lián)發(fā)科發(fā)布G25與G35手機(jī)處理器,定位低端入門市場
- 韓媒:LG 明年或發(fā)布可卷曲的智能手機(jī)
- 華為Mate 40將配備雙揚(yáng)聲器:或和Mate 20X同款
- STM32F10x_SPI(硬件接口 + 軟件模擬)讀寫Flash(25Q16)
- STM32_SPI讀寫Flash
- 配備全新5G賦能TBOT網(wǎng)絡(luò)提升軟件,哈曼推出新車載智聯(lián)方案
- STM32_TIM輸出PWM波形
- 松下發(fā)布全新AR抬頭顯示系統(tǒng)與SPYDER車載互聯(lián)系統(tǒng)
- 淘了一本1963年的《電子管手冊》
- 惡搞的flash游戲“飛鞋打布什”
- 和大家分享一些launchpad例程(msp430g2xx3)包含各個模塊,從基礎(chǔ)到進(jìn)階的
- 有關(guān)GPIO驅(qū)動開發(fā)問題,再次請教?。╓inCE5.0+VS2008)
- 人臉識別門禁考勤進(jìn)入“平民化”應(yīng)用時代
- 關(guān)于學(xué)習(xí)ARM零基礎(chǔ)培訓(xùn)主要哪幾項(xiàng)?
- MATLAB如何提取基波與各次諧波的有效值?
- 世界杯“踢痛”授權(quán)商
- 說保險絲
- PPC上用isqlw給數(shù)據(jù)庫建表,能建幾個表,如何整理他們之間的關(guān)系???