STM32小白入門(第八天)-------低功耗藍芽模組
阿新 • • 發佈:2019-01-05
藍芽是現在智慧生態下運用的最多的,比如智慧手環,智慧手錶,智慧家居也離不開它的身影。
我用的是,CC2541低功率藍芽模組4.0 BLE 串列埠 帶底板直排針 無線藍芽模組
藍芽是無線短距離傳輸的一種,有79個頻段,工作頻段範圍是2402~2480MHz,通常傳輸距離為10米,經過10多年的快速發展,藍芽技術已經非常成熟,廣泛的應用在各類產品,特別是數碼類產品。主要運用在手機,電腦,藍芽耳機藍芽音響,藍芽手環,智慧家駒等等。
藍芽優點:
與藍芽通訊技術工作頻段類似的WiFi無線網路技術相比,藍芽通訊技術應用於各種裝置上有省電,低功耗,傳輸穩定,小巧,安全方面等優勢。
二、藍芽模組有兩種通訊模式
1、AT指令模式
2、資料透傳模式
三、AT指令程式設計
1、設定模組的名字
//傳送字串 void usart3_send_str(uint8_t *pbuf) { while(*pbuf) { //傳送資料 USART_SendData(USART3,*pbuf++); //一直檢查傳送緩衝區是否為空,若為空,則為SET;不為空,則為RESET,也代表說資料還沒有傳送完成,在傳送過程當中 while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET); } } void ble_set_config(void) { //設定好模組的名字 usart3_send_str((uint8_t *)"AT+NAMEStudent.Lin\r\n"); delay_ms(500); //獲取模組的地址資訊,因為通過手機搜尋的時候,有些時候無法顯示到模組的名字,只能顯示到模組的地址資訊 usart3_send_str((uint8_t *)"AT+LADDR\r\n"); delay_ms(500); }
//每觸發一次中斷,都隔1.04ms void USART3_IRQHandler(void) { uint8_t d; OSIntEnter(); //檢查是否接收到串列埠資料 if(USART_GetITStatus(USART3,USART_IT_RXNE)==SET) { //新增使用者程式碼 d = (uint8_t)USART_ReceiveData(USART3); Ble_Buff[count++] = d; //通過串列埠1且波特率為115200bps的觀察,傳送一個位元組80us printf("%c",d); if(Ble_Buff[count-1] == '\n') { count = 0; Ble_Flag = 1; } //告訴CPU,這裡已經完成一次接收資料中斷,可以進行下一次的資料接收 USART_ClearITPendingBit(USART3,USART_IT_RXNE); } OSIntExit(); }