如何将已有的字符串通过uart发送到串口调试助手上,比如发送数组里的五个字符abcde。求代码,用
如何将已有的字符串通过uart发送到串口调试助手上,比如发送数组里的五个字符abcde。求代码,用SBUF接收,串口中断触发。求指点...
如何将已有的字符串通过uart发送到串口调试助手上,比如发送数组里的五个字符abcde。求代码,用SBUF接收,串口中断触发。求指点
展开
展开全部
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar scode[]={"a","b","c","d","e"};
uchar sbuf_p=0;
void UartInit(void) //9600bps@11.0592MHz
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR &= 0xBF; //定时器1时钟为Fosc/12,即12T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFD; //设定定时初值
TH1 = 0xFD; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
void main()
{
UartInit();
ES=1;
PS=1;
EA=1;
SBUF=scode[0];
while(1);
}
void Uart() interrupt 4
{
TI=0;
sbuf_p++;
if(sbuf_p<6)SBUF=scode[sbuf_p];
}
#define uchar unsigned char
#define uint unsigned int
uchar scode[]={"a","b","c","d","e"};
uchar sbuf_p=0;
void UartInit(void) //9600bps@11.0592MHz
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR &= 0xBF; //定时器1时钟为Fosc/12,即12T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFD; //设定定时初值
TH1 = 0xFD; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
void main()
{
UartInit();
ES=1;
PS=1;
EA=1;
SBUF=scode[0];
while(1);
}
void Uart() interrupt 4
{
TI=0;
sbuf_p++;
if(sbuf_p<6)SBUF=scode[sbuf_p];
}
更多追问追答
追问
有错
数组的定义就错了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |