前言
本篇博客詳細的介紹如何實現(xiàn)HC08主從機設置,命名,以及如何實現(xiàn)兩個STM32通過HC08互相通信,并附帶完整的操作步驟,以及源代碼。
目錄
一、HC08主從配置
1.1VOFA+的下載及基本用法
1.1.1VOFA+的下載? ? ? ??
1.1.2VOFA+的基本用法? ?
1.2配置HC08主從機及其他
二、兩個STM32通過HC08互相通信
2.1硬件連接
2.2軟件實現(xiàn)(附完整源碼)
三.手機APP連接HC08
四.HC08的AT指令表
一、HC08主從配置
1.1VOFA+的下載及基本用法
1.1.1VOFA+的下載? ? ? ??
VOFA+是一款非常簡單好用的串口上位機軟件,既可以監(jiān)視波形調試參數(shù),又可以發(fā)送串口指令,滿足電賽控制題調試的一切需求,是未來拿下國一同學們的必備工具,官網(wǎng)下載鏈接如下:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 下載中心 | VOFA-Plus上位機
圖1是VOFA+的界面,一般只需要修改端口號與波特率,按照STM32配置的串口波特率修改即可。
? ?

1.1.2VOFA+的基本用法? ?
1.藍色圖標是啟動按鈕,成功連接后,接受發(fā)送來的串口數(shù)據(jù),閃藍色。
2.紅色圖標是協(xié)議與連接,在此界面設置串口參數(shù)配置,如圖2。

? ? ? ?
3.綠色圖標界面設置串口指令,點擊選擇“命令”,如圖3。

4.成功生成“命令8”,選擇編輯,可以修改名稱和發(fā)送內容,編輯完成后,雙擊退出編輯,點擊“命令8”控件,就可以發(fā)送“1234”了,如圖4(未退出編輯模式),之后就需要用這個功能給HC08發(fā)送信息。

1.2配置HC08主從機及其他
基本步驟:
1.利用USB轉串口模塊,將HC08物理連接電腦,并打開VOFA+真正與HC08串口通訊,波特率設置為9600(出廠默認波特率是9600,連接上后可以自定義)。
2.按照AT指令表,編輯VOFA+的命令工具,向HC08發(fā)送對應的AT指令。
注意:設置一個為主機,一個為從機,上電即可自動連接。HC08 支持一對一連接,第一次連接后,主機會自動記憶配對對象。如需連接其他模塊,必須先清除配對記憶。主從機可以互發(fā)消息。(配對中HC08板載燈閃爍,連接成功板載燈常亮)
圖5中,我的命令控件叫“設置主機”,發(fā)送的內容為“AT+ROLE=M”,查AT指令表(附文末)知該命令設置主機,設置從機則改M為S,“AT+ROLE=S”。

圖6中,我的命令控件叫“設置波特率”,發(fā)送的內容為懶得打了,如圖所示,查表知該命令為設置HC08波特率,再次強調一下HC08出廠設置的波特率是9600。

二、兩個STM32通過HC08互相通信
2.1硬件連接
2.2軟件實現(xiàn)(附完整源碼)
實現(xiàn)思路:
1.實現(xiàn)兩個STM32與HC08主從機串口通訊。
2.連從機的STM32與連主機的STM32互相發(fā)送信息,收到對應消息點亮的板載燈。
注意:兩燈均被點亮說明,實現(xiàn)互相通訊,代碼方面兩個單片機的代碼是一樣的,接受中斷函數(shù),判斷是否收到另一個單片機發(fā)送的字符‘a’,同時在main函數(shù)的while(1)里一直向另一個單片機發(fā)送字符‘a’,現(xiàn)象是先后上電后,兩個32的板載燈幾乎同時被點亮。
main文件
#include "stm32f10x.h" // Device header
#include "Delay.h"
#include "OLED.h"
#include "HC08.h"
int main(void)
{
HC08_Init();//初始化HC08串口
GPIO_InitTypeDef GPIO_InitStructure;//初始化板載燈B5
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_5);//熄滅B5
while (1)
{
HC08_SendByte('a');//發(fā)送‘a’
}
}
HC08.h文件
#ifndef __HC08_H
#define __HC08_H
void HC08_Init(void);
void HC08_SendByte(uint8_t Byte);
//void HC08_SendString(char *String);
#endif
HC08.c文件
#include "stm32f10x.h" // Device header
void HC08_Init(void)//USART1 A9-TX A10-RX
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = 9600;//波特率
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_Init(USART1, &USART_InitStructure);
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
NVIC_Init(&NVIC_InitStructure);
USART_Cmd(USART1, ENABLE);
}
void HC08_SendByte(uint8_t Byte)
{
USART_SendData(USART1, Byte);
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
}
int HC08_data=0;
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1,USART_IT_RXNE) != RESET)
{
HC08_data=USART_ReceiveData(USART1);
if(HC08_data=='a')//如果STM32”A”發(fā)送的消息是‘a’,則板載燈被點亮
{
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}
}
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
}
三.手機APP連接HC08
步驟:
1.與步驟二的代碼相同,不用修改現(xiàn)象是一樣的,連接好后,手機端給HC08發(fā)送字符‘a’,即可點亮stm32板載燈。
2.下載藍牙助手APP(此處藍牙串口調試APP都可以連接,不一定非要下載HC藍牙助手),附應用信息。
3.連接搜索,用VOFA+命名的HC08,比如我叫LLBW,點擊連接就行,之后發(fā)送字符‘a’,看是否點亮板載燈。(是否連接成功)文章來源:http://www.zghlxwxcb.cn/news/detail-838272.html
四.HC08的AT指令表
文章來源地址http://www.zghlxwxcb.cn/news/detail-838272.html
到了這里,關于HC08藍牙模塊實現(xiàn)手機通信以及互相通信(附源碼及解析)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!