hc-05与stc32g12k128的连接代码
时间: 2023-10-10 13:06:37 浏览: 113
DS1302+UART1 PRINT-STC32G12K128
您可以使用以下代码将HC-05与STC32G12K128连接起来:
```c
#include "STC15F2K60S2.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit LED = P1^0; // 定义一个LED引脚
void Delay_ms(uint ms)
{
uint i, j;
for (i = ms; i > 0; i--)
for (j = 110; j > 0; j--);
}
void UART_Init()
{
TMOD = 0x20; // 设置定时器1的工作模式为8位自动重装载模式
TL1 = 0xfd; // 设置定时器1的初值,用于波特率的设定(对应9600波特率)
TH1 = 0xfd; // 设置定时器1的初值,用于波特率的设定(对应9600波特率)
PCON = 0x00; // 不加倍波特率
SCON = 0x50; // 设置串口工作在方式1,允许接收
TR1 = 1; // 启动定时器1
TI = 0; // 清除发送标志位
RI = 0; // 清除接收标志位
}
void UART_SendByte(uchar dat)
{
SBUF = dat;
while (!TI); // 等待发送完成
TI = 0; // 清除发送标志位
}
void UART_SendString(uchar *str)
{
while (*str)
{
UART_SendByte(*str++);
}
}
void main()
{
uchar i;
LED = 0; // 初始化LED引脚为低电平
UART_Init(); // 初始化串口
while (1)
{
if (RI) // 判断是否接收到数据
{
i = SBUF; // 读取接收到的数据
RI = 0; // 清除接收标志位
if (i == '1') // 若接收到的数据为字符'1'
{
LED = 1; // 点亮LED
UART_SendString("LED ON\r\n"); // 发送字符串
}
else if (i == '0') // 若接收到的数据为字符'0'
{
LED = 0; // 熄灭LED
UART_SendString("LED OFF\r\n"); // 发送字符串
}
}
}
}
```
这段代码通过串口与HC-05模块进行通信。当接收到字符'1'时,点亮LED并发送字符串"LED ON\r\n";当接收到字符'0'时,熄灭LED并发送字符串"LED OFF\r\n"。您可以根据自己的需求进行修改和扩展。
阅读全文