分享一個藍牙控制LED的程序,基于原子的戰(zhàn)艦改的
該實驗是用HC05藍牙模塊做的實驗(手機與單片機,不需要回車換行),不是正點的藍牙模塊,該引腳沒有LED和KEY引腳,有STATE和EN引腳,這種藍牙模塊價格便宜很多,至于怎么進AT模式很簡單,百度搜搜,大概有兩種的。本歷程用的是串口3來做的,也是用戰(zhàn)艦V3做的。發(fā)一個字符0就可以點亮LED1的燈了。里面解析每一步都很詳細了,不懂再看多幾次。雖然是一個簡單的點燈實驗,但是意味可以實驗很多其他功能了。 (如果對大家有幫助的話,麻煩在論壇里按一下支持給我點點鼓勵,謝謝)----------------Roderick
stm32單片機源程序如下:
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "usart3.h"
- int main(void)
- {
- delay_init(); //延時函數(shù)初始化
- LED_Init(); //初始化與LED連接的硬件接口
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//usart3接收中斷優(yōu)先級2 次優(yōu)先級2
- usart3_init(9600);//藍牙的串口初始化 注意手機與單片機的藍牙連接波特率是要9600
- while(1)
- {
- if(USART3_RX_STA&0x8000)
- {
- if(USART3_RX_BUF[0]=='0')
- {
- LED0=!LED0;
- LED1=!LED1;
- }
- USART3_RX_STA=0;
- }
- }
- }
- /**
- *****************下面注視的代碼是通過調(diào)用庫函數(shù)來實現(xiàn)IO控制的方法*****************************************
- int main(void)
- {
-
- delay_init(); //初始化延時函數(shù)
- LED_Init(); //初始化LED端口
- while(1)
- {
- GPIO_ResetBits(GPIOB,GPIO_Pin_5); //LED0對應(yīng)引腳GPIOB.5拉低,亮 等同LED0=0;
- GPIO_SetBits(GPIOE,GPIO_Pin_5); //LED1對應(yīng)引腳GPIOE.5拉高,滅 等同LED1=1;
- delay_ms(300); //延時300ms
- GPIO_SetBits(GPIOB,GPIO_Pin_5); //LED0對應(yīng)引腳GPIOB.5拉高,滅 等同LED0=1;
- GPIO_ResetBits(GPIOE,GPIO_Pin_5); //LED1對應(yīng)引腳GPIOE.5拉低,亮 等同LED1=0;
- delay_ms(300); //延時300ms
- }
- }
-
- ****************************************************************************************************
- ***/
-
-
- /**
- *******************下面注釋掉的代碼是通過 直接操作寄存器 方式實現(xiàn)IO口控制**************************************
- int main(void)
- {
-
- delay_init(); //初始化延時函數(shù)
- LED_Init(); //初始化LED端口
- while(1)
- {
- GPIOB->BRR=GPIO_Pin_5;//LED0亮
- GPIOE->BSRR=GPIO_Pin_5;//LED1滅
- delay_ms(300);
- GPIOB->BSRR=GPIO_Pin_5;//LED0滅
- GPIOE->BRR=GPIO_Pin_5;//LED1亮
- delay_ms(300);
- }
- }
- **************************************************************************************************
- **/
復(fù)制代碼
所有資料51hei提供下載:
藍牙點燈 一個字符控制.rar
(280.83 KB, 下載次數(shù): 463)
2018-7-28 14:00 上傳
點擊文件名下載附件
藍牙 下載積分: 黑幣 -5
|