蓝桥杯单片机模块代码(串口)(代码+注释)

本文介绍了STM32单片机中串口通信的角色,包括发送和接收寄存器SBUF的使用,以及串口波特率的可变性。在中断服务程序中,数据发送采用查询方式,而数据接收通过中断实现。当数据发送完成或接收到数据时,特定标志位会被置1。同时提供了官方资源下载链接供读者深入学习。
摘要由CSDN通过智能技术生成

串口在本单片机内承担输入和输出数据的工作,串行口中有两个缓冲寄存器SBUF,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的。它们都是字节寻址的寄存器,字节地址均为99H。中断函数后增加interrupt 4(用户手册6.6)。串口数据发送采用查询方式,数据接收采用中断方式。在51单片机的串口通信中,串口的波特率是可变的,取决于定时器1的溢出率,也就是说定时器1每溢出1次,串口就发送一次数据。

#include "STC15F2K60S2.H"
#include "stdio.h"

typedef unsigned char u8;
typedef unsigned int u16;

u8 org[11]="12345678\r\n",tran[9],wei,i,delay;
u16 count;

void close()
{
  P0=0;
  P2=P2&0X1F|0XA0;
  P2=P2&0X1F;
  P0=0XFF;
  P2=P2&0X1F|0X80;
  P2=P2&0X1F;
}

void open()
{
  EA=1;
  ET0=1;
  ES=1;
}

void UartInit(void)		/*通过STC-ISP可以直接计算出,内容理解可查看之前的定时器章节*/ //9600bps@11.0592MHz
{
	SCON = 0x50;		//8位数据,可变波特率
	AUXR |= 0x40;		//定时器1时钟为Fosc,即1T
	AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//设定定时器1为16位自动重装方式
	TL1 = 0xE0;		//设定定时初值
	TH1 = 0xF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值