国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

STM32入門項(xiàng)目筆記

發(fā)布者:BlissfulDreams最新更新時間:2025-02-05 來源: jianshu關(guān)鍵字:STM32 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

單片機(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ī)


關(guān)鍵字:STM32 引用地址:STM32入門項(xiàng)目筆記

上一篇:安富萊 STM32 按鍵檢測
下一篇:STM32學(xué)習(xí):I2C-EEPROM實(shí)驗(yàn)

推薦閱讀最新更新時間:2025-04-25 10:46

STM32一文通(3) GPIO
預(yù)置知識: 開時鐘 STM32 每一個片上外設(shè)資源都有自己的時鐘,這些時鐘被一個叫做RCC的外設(shè)統(tǒng)一管理, 所以,每一個片上外設(shè)想要應(yīng)用第一件事就是: 開時鐘!!!!! 根據(jù)系統(tǒng)結(jié)構(gòu)圖,GPIO都在APB2總線上 所以,我們要用void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)函數(shù)操作開啟GPIO的時鐘: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能或者失能APB2外設(shè)時鐘 一. GPIO基礎(chǔ)知識、寄存器及庫函數(shù) 二. (重要)GPIO
[單片機(jī)]
stm32型號命名規(guī)則
stm32型號命名規(guī)則示例: STM32 | F | 100 | C | 6 | T | 6 | B | XXX 1 2 3 4 5 6 7 8 9 從上面的料號可以看出以下信息: ST品牌ARM Cortex-Mx系列內(nèi)核32位超值型MCU,LQFP -48封裝 閃存容量32KB 溫度范圍-40℃-85℃; 產(chǎn)品系列:STM32代表ST品牌Cortex-Mx系列內(nèi)核(ARM)的32位MCU; 產(chǎn)品類型: F:通用快閃(Flash Memory);L:低電壓(1.65~3.6V); F類型中F0xx和 F1xx系列為2.0~3.6V; F2xx和F4xx系列為1.8~3.6V; W:無線系統(tǒng)芯片,開發(fā)版.產(chǎn)品
[單片機(jī)]
STM32中斷系統(tǒng)
中斷與異常 中斷與異常這個概念其實(shí)可以說是一回事。最早出現(xiàn)中斷概念的時候就管它就叫中斷。外設(shè)某些時候需要中斷(Interrupt)CPU的運(yùn)行,來處理自己的請求。此時中斷用于外設(shè)響應(yīng)。但是系統(tǒng)內(nèi)部也會出現(xiàn)錯誤,必須要中止CPU的運(yùn)行。為了區(qū)分這兩者所引發(fā)的中斷,便有了內(nèi)中斷與外中斷概念。內(nèi)中斷指的是系統(tǒng)內(nèi)部的錯誤,外中斷是外設(shè)的請求。為了區(qū)分兩者,內(nèi)中斷就被稱為異常(Exception)了。從此有了中斷和異常的概念,外設(shè)請求叫中斷,內(nèi)部錯誤叫異常。外中斷這個概念就有了新的含義,就是芯片外部發(fā)來的中斷請求。在STM32芯片中,由GPIO管腳產(chǎn)生的中斷,稱為EXTI(External Interrupts 外部中斷)。 NVIC NV
[單片機(jī)]
STM32中斷使用筆記
1.GPIO 的正確設(shè)置 GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIOD clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); /* Configure PD.03, PC.04, as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOD, &GPI
[單片機(jī)]
關(guān)于STM32 ADC時采用DMA的一點(diǎn)疑問
手冊上有這樣的話:只有ADC1能夠產(chǎn)生DMA請求,似乎是只有ADC通道1能采用DMA方式傳輸數(shù)據(jù)。 但是萬利的開發(fā)板上的ADC例子,用的是ADC通道10,還用了DMA 方式傳數(shù)據(jù)。 所以我猜測 “只有ADC1能夠產(chǎn)生DMA請求”中提到的ADC1 并不是指ADC 通道1, 而是軟件可配置的 ADC 通道的分類形式,可分為ADC1和ADC2. 我們可將 通道10(或其他)配置成ADC1 “模式”。通過函數(shù) /* ADC1 regular channel10 configuration */ ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_5
[單片機(jī)]
STM32的備份電池壽命
請教諸位使用STM32的兄弟: 如果用50mah的備份電池給STM32的RTC供電,能堅(jiān)持多長時間?規(guī)格書上IDD_VBAT是。而VBAT的范圍是1.8~3.6V。 ST是否有相應(yīng)針對特定電池的數(shù)據(jù)。 -------------------------------------------------------------------- 半導(dǎo)體公司不會給出一個準(zhǔn)確的數(shù)據(jù),一般自己計(jì)算一下就好了。 比如50mAh的電池按照1.4uA放電,可以使用的時間為:50mAh / 1.4uA = 35714小時 CR2025電池 電壓3.0V,容量150,尺寸20.0X2.5mm, 重量2.4g 150mAh / 1.4uA =
[單片機(jī)]
STM32之八定時器中斷
STM32的通用定時器是一個通過可編程預(yù)分頻器(PSC)驅(qū)動的16 位自動裝載計(jì)數(shù)器(CNT)構(gòu)成。STM32的通用定時器可以被用于:測量輸入信號的脈沖長度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和PWM)等。 使用定時器預(yù)分頻器和RCC時鐘控制器預(yù)分頻器,脈沖長度和波形周期可以在幾個微秒到幾個毫秒間調(diào)整。STM32的每個通用定時器都是完全獨(dú)立的,沒有互相共享的任何資源。 STM3的通用TIMx (TIM2、TIM3、TIM4和TIM5)定時器功能包括: 1)16位向上、向下、向上/向下自動裝載計(jì)數(shù)器(TIMx_CNT)。 2)16 位可編程(可以實(shí)時修改)預(yù)分頻器(TIMx_PSC),計(jì)數(shù)器時鐘頻率的分頻系數(shù)為1~65535之間
[單片機(jī)]
<font color='red'>STM32</font>之八定時器中斷
STM32的時鐘系統(tǒng)
STM32(CORETEX-M3)有5中時鐘源:HSI、HSE、LSI、LSE、PLL (1)HSI是高速內(nèi)部時鐘,又叫RC振蕩器,晶振頻率為8MHZ,精確度不高。 (2)HSE是高速外部時鐘,可接石英、陶瓷諧振器;也可接如外部時鐘信號,范圍為4-16MHZ。 (3)LSI是低速內(nèi)部時鐘,RC振蕩器,頻率為40KHZ,提供低功耗時鐘。 (4)LSE是低速外部時鐘,外接頻率為32.768KHZ石英晶體。 PLL為鎖相環(huán)倍頻輸出,其時鐘輸入源可為HSI、HSE、HSE/2。倍頻可選擇2~16倍,最大不超過76MHZ。 sysclk的時鐘來源:HSI、HSE、PLL 實(shí)時時鐘 stm32的實(shí)時時鐘是一個獨(dú)立的定時器,這個定時器可以連
[單片機(jī)]
<font color='red'>STM32</font>的時鐘系統(tǒng)
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved