单片机发送字符串给串口助手 但是串口助手接收乱码为什么?发A接收A1,B接收A2,C接收A3,0接收80,1接收81
程序如下#include<AT89X52.h>#include<string.h>#defineucharunsignedchar#defineuintunsignedi...
程序如下
#include <AT89X52.h>
#include<string.h>
#define uchar unsigned char
#define uint unsigned int
uchar dis[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
//char str[] = "AT";
/*****n(ms)延时子程序*****/
void delayms(uint ms) //延时ms
{
uchar i;
while(ms--)
{
for(i=0;i<240;i++);
}
}
/*****主程序*****/
void main()
{
int i;
TMOD=0x20; //定时器1工作于8位自动重载模式, 用于产生波特率
TH1=0xFD; //波特率9600
TL1=0xFD;
SCON=0x50; //设定串行口工作方式
TR1=1; //启动定时器1
while(1)
{
for(i=0;i<16;i++)
{
SBUF=dis[i];
// SBUF=str[i];
while(!TI); //等特数据传送
TI=0; //清除数据传送标志
delayms(500);
}
}
} 展开
#include <AT89X52.h>
#include<string.h>
#define uchar unsigned char
#define uint unsigned int
uchar dis[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
//char str[] = "AT";
/*****n(ms)延时子程序*****/
void delayms(uint ms) //延时ms
{
uchar i;
while(ms--)
{
for(i=0;i<240;i++);
}
}
/*****主程序*****/
void main()
{
int i;
TMOD=0x20; //定时器1工作于8位自动重载模式, 用于产生波特率
TH1=0xFD; //波特率9600
TL1=0xFD;
SCON=0x50; //设定串行口工作方式
TR1=1; //启动定时器1
while(1)
{
for(i=0;i<16;i++)
{
SBUF=dis[i];
// SBUF=str[i];
while(!TI); //等特数据传送
TI=0; //清除数据传送标志
delayms(500);
}
}
} 展开
4个回答
展开全部
还是很有规律的,这不是乱码。
代码上面来看没问题。
代码上面来看没问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是波特率设置不对 或者不准?
追问
那该如何设置呢? 我要改程序里面的波特率吗?
和波特率有关吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询