1. 程式人生 > >STM32小白入門(第八天)-------低功耗藍芽模組

STM32小白入門(第八天)-------低功耗藍芽模組

藍芽是現在智慧生態下運用的最多的,比如智慧手環,智慧手錶,智慧家居也離不開它的身影。

我用的是,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(); 
}