标题: 这个单片机程序为什么在串口助手里面发送都是乱码,我的波特率4800 [打印本页]

作者: YHC828    时间: 2020-6-3 23:22
标题: 这个单片机程序为什么在串口助手里面发送都是乱码,我的波特率4800
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
u8 str[]=“请输入文字";
void delay100ms(void)
{
  unsigned char a,b,c;
  for(c=19;c>0;c--)
    for(b=20;b>0;b--)
    for(a=130;a>0;a--);
}
void UartInit() //?????????????????
{
  TMOD=0x20;   //
  TH1=0xf3;   
  TL1=0xf3;
  PCON=0x80;
  TR1=1;
  SCON=0x50;
  ES=1;
  EA=1;
}
void UartSend(char *Data,char len)
{
  u8 i;
  for(i=0;i<len;i++)
  {
  SBUF=*Data++;
  while(!TI);
  TI=0;
  }
   delay100ms();
}
void main()   //??????
{   
  while(1)
{
    UartInit();
UartSend(str,10);   
}
}


作者: adject    时间: 2020-6-3 23:49
显示选的是ASCII 吧,改HEX看看
作者: aking991    时间: 2020-6-4 08:07
void UartSend(char *Data,char len)
{
  u8 i;
  for(i=0;i<len;i++)
  {
  SBUF=*Data++;
  while(!TI);
  TI=0;
  }
}
这个函数中不能加这个   delay100ms();,加了这个发送就慢了,软件怎么识别到呢
作者: lovezjf234    时间: 2020-6-4 09:23
串口只能输入ASCII码,不能输中文,自己百度ASCII内容,str[]="please input the word"
作者: moon20000boy    时间: 2020-6-4 09:39
看你的代码出现了问号,应该是你的IDE 也就是keil的文本编辑器里没有设置成支持中文,设置成utf8应该就可以了,串口助手支持中文,楼上的不要误导大家

作者: moon20000boy    时间: 2020-6-4 09:41
串口和串口助手都支持中文,针对楼上的回复
作者: 51hei**1140    时间: 2020-6-4 10:39
你好!
1、有部分串口调试助手不支持中文
2、单片机晶振要选对,否则误差大
3、给你发一个支持中文的串口助手



    串口调试助手.rar (514.96 KB, 下载次数: 15)


作者: YHC828    时间: 2020-6-4 23:38
moon20000boy 发表于 2020-6-4 09:41
串口和串口助手都支持中文,针对楼上的回复

对,我以前试过可以,现在要做实验试一下,不知道怎么搞得,中文就是乱码
作者: YHC828    时间: 2020-6-4 23:42
51hei**1140 发表于 2020-6-4 10:39
你好!
1、有部分串口调试助手不支持中文
2、单片机晶振要选对,否则误差大

好的,非常感谢
作者: MikeCai    时间: 2020-6-5 08:30
另外 不能在 while(1)loop内 一直初始化串口UartInit();可放在 main前,while(1) 之前:




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1