串口输出乱码怎么办?

飞灵 2012-11-28 04:58:36

#include<reg52.h>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
uchar ch[8];
sbit K1=P3^2;
void delayms(uint x)
{
while(x--)
{
uint i;
for(i=112;i>0;i--);
{;}
}
}
void uart(void)
{
SCON=0x40;
REN=1;
PCON=0;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TI=1;
TR1=1;
}
int main()
{
uchar ch[8];
uint j;
uart();
printf("please input the char and input ' 'to stop\n");
for(j=0;j<8;j++)
{
scanf("%c",&ch[j]);
if(ch[j]==' ')
break;
}
printf("\n");
printf("please press the K1 to display the word!\n");
while(K1!=0);
delayms(100);
if(K1==0)
{
while(K1==0);
printf("the char is {");
for(j=0;j<8;j++)
{
printf("%c",ch[j]);
}
printf("}\n\n\n");
}
}
请各位帮忙看一下为什么会出现乱码?
...全文
1294 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞灵 2012-12-05
  • 打赏
  • 举报
回复
波特率,数据位数,停止位数,奇偶校验,流控什么的都检查过了,没有问题
飞灵 2012-12-05
  • 打赏
  • 举报
回复
不是波特率的问题是程序中scanf函数的字符串输出格式错误应该是scanf("%s",ch),而不是用for循环将每一个字符输入
xumaojun 2012-11-28
  • 打赏
  • 举报
回复
首先排除硬件问题,其次是串口参数设置,最后是使用的串口调试工具.
ForestDB 2012-11-28
  • 打赏
  • 举报
回复
串口设置都还正确? 包括波特率,数据位数,停止位数,奇偶校验,流控等等。 还有就是接线/接口什么的还好,有没有接触不良什么的。
lilianjie001 2012-11-28
  • 打赏
  • 举报
回复
或许是波特率的问题

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧