没志青年
发布于 2025-07-02 / 24 阅读
0

STC 串口通信

串口1配置流程:

(1)确认使用的引脚

P_SW1[7](S1_S1

P_SW1[6](S1_S0)

接收引脚

发送引脚

备注

0

0

3.0

3.1

默认。这两个是“下载/仿真”的唯一引脚。

若一定要用来通信,则务必在下载程序的时候勾选“下次冷启动时......下载程序”

0

1

3.6

3.7

建议使用。

1

0

1.6

1.7

串口1在P1口时要使用内部时钟

1

1

无效

(2)波特率速度

(3)工作方式

(4)设置波特率发生器

完整代码:

void Uart1_Init(void)
{	
	// 串口设置
	PCON &= 0x3f;		//波特率不倍速,串行口工作方式由SM0、SM1决定
	SCON = 0x50;		//8位数据,可变波特率,启动串行接收器
	AUXR |= 0x40;		//定时器1时钟为Fosc,即1T
	AUXR &= 0xfe;		//串口1选择定时器1为波特率发生器
	// 定时器设置
	TMOD &= 0x0f;		//清除定时器1模式位
	TMOD |= 0x20;		//设定定时器1为8位自动重装方式
	TL1 = 0xDC;		  //设定定时初值
	TH1 = 0xDC;		  //设定定时器重装值
	ET1 = 0;		    //禁止定时器1中断
	TR1 = 1;		    //启动定时器1
	// 开启中断
	ES = 1;         // 串口1中断打开
}

串口1发送函数:

串口1接收中断函数:

当接收到一个完整字节时便会中断。