stc8h8k64u单片机,我需要利用串口4发送串口数据,需要启用奇校验,程序该怎么写
时间: 2024-05-06 07:18:29 浏览: 146
以下是使用STC-ISP下载器和Keil uVision5软件编写的STC8H8K64U单片机串口发送程序,其中启用了奇校验:
```c
#include <STC8.H>
void UART4_Init() //串口4初始化函数
{
S4CON = 0x50; //8位数据,允许接收,启动接收器
T4L = 0xFD; //波特率9600
T4H = 0xFD;
P4SW = 0x10; //P4.4作为TX输出口
P4DIR |= 0x10; //P4.4作为输出口
P4 |= 0x10; //默认为高电平
}
void UART4_SendByte(unsigned char dat) //串口4发送一个字节
{
while(!TI4); //等待上一个字节发送完成
TI4 = 0; //清除发送标志
S4BUF = dat; //发送数据
}
void UART4_SendString(unsigned char *s) //串口4发送字符串
{
while(*s != '\0')
{
UART4_SendByte(*s);
s++;
}
}
void main()
{
unsigned char data = 0x55; //要发送的数据
UART4_Init(); //串口4初始化
P3M1 = 0x00; //P3口作为LED输出口
P3M0 = 0xFF;
while(1)
{
UART4_SendByte(data); //发送数据
P3 = ~P3; //LED闪烁
}
}
```
在上述程序中,我们使用了STC8H8K64U单片机的串口4发送数据,并启用了奇校验。其中,串口初始化函数UART4_Init()设置了波特率为9600,数据位为8位,启用了接收器并将P4.4作为TX输出口;UART4_SendByte()和UART4_SendString()分别用于发送单个字节和字符串。主函数中,我们不断发送一个字节数据并让LED灯闪烁以示程序正常运行。
阅读全文