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

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

MM32W無線MCU系列產(chǎn)品應(yīng)用筆記 —— 自定義AT指令

關(guān)鍵字:靈動微電子 MM32W無線MCU 自定義AT指令 作者: 來源: 發(fā)布時(shí)間:2022-06-09  瀏覽:35
MM32W0/3提供模組和開發(fā)板方式供客戶使用,支持UART\SPI\IIC接口的AT指令,用戶通過發(fā)送相關(guān)固定格式的指令方式可以實(shí)現(xiàn)對應(yīng)功能。開發(fā)板上電后,模塊會自動進(jìn)行廣播,移動設(shè)備的APP 會對其進(jìn)行掃描和連接,連接成功之后可以通過BLE 在模塊和移動設(shè)備之間進(jìn)行數(shù)據(jù)傳輸。用戶MCU 可通過模塊的串口和移動設(shè)備進(jìn)行雙向通信,移動設(shè)備也可以通過APP 對模塊進(jìn)行寫操作,寫入的數(shù)據(jù)將通過串口發(fā)送給用戶的MCU,模塊收到來自用戶MCU 串口的數(shù)據(jù),將自動轉(zhuǎn)發(fā)給移動設(shè)備。

AT 指令主要用于配置模塊參數(shù),比如廣播間隔、設(shè)備名、等,也用于發(fā)送透傳數(shù)據(jù)和斷開BLE 連接。而對于AT指令,客戶可以很方便的進(jìn)行修改,添加自己需要的功能。

通信流程

通信流程


圖1 通信流程


UART AT指令集

UART AT指令集


表1 UART AT指令集


在官方提供的程序中已經(jīng)支持大部分的藍(lán)牙設(shè)置等操作,可以實(shí)現(xiàn)透傳、修改藍(lán)牙參數(shù)等操作,如果用戶需要單獨(dú)開發(fā)AT指令集可以通過以下方式進(jìn)行開發(fā)。


接收指令


首先是接收指令時(shí)的數(shù)據(jù)處理流程:
接收指令流程圖


圖2 接收指令流程圖


在每次藍(lán)牙服務(wù)調(diào)用UsrProcCallback()函數(shù)時(shí),使用CheckAtCmdInfo()函數(shù)檢查是否收到數(shù)據(jù),如果有,在進(jìn)入休眠之前加入一個(gè)可以接收20個(gè)字節(jié)的延時(shí),在接收中斷中接收剩下的數(shù)據(jù),通過判斷最后一位是否是0x0d或是0x0a來獲得一條完整的指令,調(diào)用AtCmdPreParser()函數(shù)處理數(shù)據(jù)。檢查數(shù)組開始的“AT+”和后面的指令名稱,在at_func_list[]中查找并調(diào)用對應(yīng)的函數(shù)對數(shù)據(jù)中后續(xù)的參數(shù)進(jìn)行處理。


從流程中可以看到,如果只是簡單的加減指令的話,只需要修改at_func_list數(shù)組就可以了,結(jié)構(gòu)體AT_CMD_FUNC的兩個(gè)成員變量分別是函數(shù)名稱和對應(yīng)的字符串。


注:處理時(shí)間不宜太長,更不能阻塞


typedef void (*ATCMDFUNC)(u8* cmd,u8 len);    


typedef struct _tagATCMD


{


ATCMDFUNC func;


u8 name[MAX_AT_CMD_NAME_SIZE]; //max len is 11 bytes


}AT_CMD_FUNC;


在例程中,收到AT指令要通過藍(lán)牙發(fā)送數(shù)據(jù)時(shí),使用的是sconn_notifydata()接口函數(shù),這是一種不需要應(yīng)答的藍(lán)牙特征值,預(yù)設(shè)句柄為0x12,可以在發(fā)送前用set_notifyhandle()函數(shù)修改對應(yīng)的句柄,或者直接修改變量u16 cur_notifyhandle。

發(fā)送數(shù)據(jù)

在例程中,通過UART發(fā)送數(shù)據(jù)都是通過moduleOutData()函數(shù),往一個(gè)特定的緩存數(shù)組中寫入數(shù)據(jù)。這個(gè)函數(shù)可以加在任何位置,可以加在AT指令處理函數(shù)中發(fā)送應(yīng)答數(shù)據(jù),也可以加到BLE服務(wù)中實(shí)現(xiàn)數(shù)據(jù)透傳功能。

在每次藍(lán)牙服務(wù)調(diào)用UsrProcCallback()函數(shù)時(shí)檢查緩存數(shù)組,若不為空,在休眠之前加入一個(gè)延時(shí),開啟發(fā)送緩沖空中斷,并在中斷中發(fā)送剩下的數(shù)據(jù)。

接收指令流程圖


圖3 發(fā)送數(shù)據(jù)流程圖


void moduleOutData(u8*data, u8 len) //api


{


unsigned char i;


if ((txLen+len)<MAX_SIZE)//buff not overflow


{


for (i=0;i<len;i++){


txBuf[txLen+i] = *(data+i);


}


txLen += len;


}


}


 


#ifdef MM32W0NTB//NTB 32Pin UART1


void UART1_IRQHandler(void) //串口1中斷服務(wù)程序


#else //PFB 48Pin UART2


void UART2_IRQHandler(void) //串口2中斷服務(wù)程序


#endif


{


if(UART_GetITStatus(UART_BLE, UART_IT_TXIEN)  != RESET){


UART_ClearITPendingBit(UART_BLE,UART_IT_TXIEN);


TxTimeout = SysTick_Count + (20000/BaudRate);


if (PosW < txLen){


UART_SendData(UART_BLE,txBuf[PosW++]);


if (PosW == txLen){


txLen = 0;


PosW = 0;


}


}


else{


UART_ITConfig(UART_BLE, UART_IT_TXIEN, DISABLE);


}


}


}


以上例程使用的是UART接口的自定義AT指令實(shí)現(xiàn)方式,用戶可以根據(jù)需要自行修改為其他接口,如SPI、IIC、CAN、USB等。

編輯:ls  最后修改時(shí)間:2022-06-09

聯(lián)系方式

0755-82591179

郵箱:ivy@yingtexin.net

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

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

另类综合| 厨房解开奶罩吸奶头高潮小说| 邻居少妇张开双腿让我爽一夜| 亚洲一区二区观看播放| 老牛精品亚洲成av人片| 免费观看a级片| 亚洲精品在线观看| 西西人体大胆啪啪私拍色约约| 调教超级yin荡护士h| 长篇交换高h肉辣全集目录| 国产chinesehdxxxx宾馆tube| 浪荡货老子大吗爽死你h漫画男男| 三级网站午夜三级| 一女三黑人玩4p惨叫a片| 北地胭脂| 天天摸夜夜躁夜夜无码小视频| 再深点灬舒服灬太大了少妇| 99久久久国产精品免费蜜臀| 翁止熄痒禁伦短文合集免费视频| 日日摸天天爽天天爽视频| 亚洲欧美精品午睡沙发| 99e久热只有精品8在线直播| 亚洲日韩av无码中文字幕美国| 上司人妻互换中文字幕| 日本免费一区二区三区视频观看| 国产精品久久久久精品综合紧| 中英文字幕是不是乱码| 嫩草伊人久久精品少妇av网站| 公开高潮当众露出羞耻h| 最残忍最另类残虐sm的小说| 日本亚洲色大成网站www久久| chinese山西老熟女bbw| 被老师摸着jj勃起有14厘米| 欧美放荡办公室videos按摩| 久久国产精品无码网站| 欧美老妇激情xxxxxx按摩| 久久久久久精品成人免费图片| 初爱视频教程免费看| 国产亚洲成av人片在线观黄桃| 娇妻当着我的面被4p| 脱警花警服露大白乳|