98国产精品综合一区二区三区,国产福利视频,男人添女人囗交做爰视频,日本免费一区二区三区视频观看

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> MM32/靈動微電子 >> MM32W無線MCU系列產(chǎn)品應(yīng)用筆記——中斷式例程

MM32W無線MCU系列產(chǎn)品應(yīng)用筆記——中斷式例程

關(guān)鍵字:靈動微電子 MM32W無線MCU 中斷式例程 作者: 來源: 發(fā)布時間:2022-06-09  瀏覽:39
在上一章節(jié),我們了解了MM32W0系列藍牙模塊的基本參數(shù),也使用AT指令對模塊進行了簡單的操作,下面我們將對軟件架構(gòu)進行簡單的講解。

藍牙通信框圖


圖1 藍牙通信框圖
MM32W0控制模塊通過SPI通信對射頻模塊進行控制,MM32W0的藍牙程序提供以庫的形式提供給大家使用,用戶無需了解藍牙協(xié)議棧,只需要對MCU進行控制即可實現(xiàn)藍牙控制。在協(xié)議棧中為方便用戶使用預(yù)留接口函數(shù),用戶通過調(diào)用相關(guān)接口的方式實現(xiàn)對應(yīng)功能。

以下幾點需要注意:

1)控制模塊SPI2 僅且只能用于與射頻模塊的通信。
2)IRQ 信號引腳用于射頻模塊與控制模塊的喚醒,且PB8 引腳只能用于控制模塊喚醒。
3)AVDD 供電電壓為2.2V ~ 3.6V

目前藍牙控制程序有兩種類型:中斷式和阻塞式,中斷方式是是以中斷服務(wù)的方式運行,適合于實現(xiàn)用戶某功能需要占用較長CPU 時間但可以被任意打斷的應(yīng)用場景;阻塞方式是藍牙協(xié)議運行的入口函數(shù)為ble_run(),該函數(shù)不會返回,兩種方式調(diào)用的接口函數(shù)都相同。

中斷式例程介紹

中斷服務(wù)程序方式運行的軟件架構(gòu)如下圖所示。

中斷方式軟件構(gòu)架


圖2 中斷方式軟件構(gòu)架


main()函數(shù):


int main(void)


{


unsigned long temp=0x800000;


unsigned long i=0; 


while(temp--);


SystemClk_HSEInit();


PWM_Init();


#ifdef USE_UART


#ifdef USE_AT_CMD


SleepStop = 0x02;


#endif


#endif


#ifdef USE_UART


uart_initwBaudRate();


#endif




#ifdef USE_I2C


IIC_Init(I2C1);


#endif    


SysTick_Configuration();




SPIM_Init(SPI2,/*0x06*/0x06); //6Mhz


 
IRQ_RF();


 
SetBleIntRunningMode(); 


radio_initBle(TXPWR_0DBM, &ble_mac_addr); 


SysTick_Count = 0;


while(SysTick_Count < 5){}; //delay at least 5ms between radio_initBle() and ble_run...


 
//ble_set_adv_data(pld_adv, LEN_ADV);


 
ble_run_interrupt_start(160*2); //320*0.625=200 ms


   
while(1)


{


//do sometging and sleep


//delay_ms(50);


IrqMcuGotoSleepAndWakeup();


}


}


 


在IRQ中斷服務(wù)中的常用配置如下:


void EXTI4_15_IRQHandler(void)


{


EXTI_ClearITPendingBit(EXTI_Line8);//確認是PB8引起的中斷


if(2 == SleepStatus)           //從STOP模式喚醒,重新啟動HSI,配置系統(tǒng)時鐘


{


RCC->CR|=RCC_CR_HSION;


RCC->CR |= RCC_CR_PLLON;


RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;


SysTick_Config(48000);


}


SleepStatus = 0;         //設(shè)置當前狀態(tài)為喚醒


ble_run(0); 


}


中斷式例程需要用到兩個中斷服務(wù)程序,一個是藍牙IRQ 中斷PB8對應(yīng)的外部中斷線,一個是實現(xiàn)SysTick 對應(yīng)的中斷。IRQ 對應(yīng)的中斷服務(wù)程序用以運行藍牙協(xié)議,需要有較高的中斷優(yōu)先級(針對所有系統(tǒng)中斷來說)。

UART,SPI,IRQ,USB等控制模塊上的配置同阻塞方式。

SPIM_Init(SPI2,0x06)是控制模塊和射頻模塊間通信的初始化,SPI2只能用于與射頻模塊的通信。

IRQ_RF將PB8設(shè)置為外部中斷,用于實現(xiàn)IRQ外部喚醒功能,通過一個下降沿喚醒MCU。PB8 引腳只能用于控制模塊喚醒。

uart_initwBaudRate()是UART的初始化,對于兩種封裝對應(yīng)的UART和GPIO接口不同。

不同點:

① 初始化藍牙配置函數(shù)radio_initBle()之前,需要先調(diào)用SetBleIntRunningMode()函數(shù)。

②啟動藍牙調(diào)用ble_run_interrupt_start()而不是ble_run(),后面需要一個while(1)循環(huán),可以將用戶程序放在這里。

③ 進入休眠模式的函數(shù)需要主動調(diào)用IrqMcuGotoSleepAndWakeup()函數(shù),函數(shù)McuGotoSleepAndWakeup()不再被調(diào)用。根據(jù)啟動藍牙時的參數(shù),射頻模塊將定時觸發(fā)IRQ的外部中斷喚醒MCU。

編輯:ls  最后修改時間:2022-06-09

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2025 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

污调教贱乳打屁股扒开作文| 女人被躁到高潮嗷嗷叫视频| 成人免费在线电影| 高清欧美videossexo| 欧美又粗又大xxxxbbbb疯狂| 两男一女两根同进去舒服吗| 国产三级农村妇女系列| 成人性生交大片免费看r| 日本髙清无码免费视频| 无码人妻熟妇av又粗又大| 亚洲精品一区中文字幕乱码| 国产精品9999久久久久仙踪林| 亚洲精品在线| 国产精品久久久久久吹潮| 将军与娇妻各种做高h| 国产三级农村妇女系列| 公主恋人ova| 全黄裸片一29分钟免费真人版| 再用点力今晚随你弄| 正文第1章初尝云雨| 坐在办公椅上悄悄做的运动| 学生挺进老师的小窄肉里| 欧美国产在线播放欧美产品| 97人人爽人人爽人人人片av| 撕开胸罩一边亲一边摸| 屁股眼扒开给客人打烂作文| 加勒比女海盗| 意大利电影巜丰满的欲妇| 浴室人妻的情欲hd三级| 玩弄老太婆bbw视频| 快穿之受收精子系统肉肉h| 国产精品免费视频| 国产在线拍揄自揄拍无码视频| 亚洲av午夜精品一区二区三区| 免费看男男gay啪啪网站| 男男下药顶撞喘嗯啊h漫画| 日韩毛片| 最近免费中文字幕2018视频| 波多野结衣av无码| 日本漫画工囗全彩内番漫绅士| 放荡亲女养成h|