wlss 发表于 2006-5-14 01:33:13

这是我做的一个串口通信的例子,大家看看

这是我做的一个串口通信的例子,各位高手大哥看看为什么不能显示字符串“'successful"



#include<reg51.h>

#include<string.h>

char code ss="Successful";

int b;

       

int a;       



main()

        {

       ES=1;

       EA=1;

       TMOD=0x20;//TI works at mode 2

       SCON=0x50;//SM0=SM2=0,SM1=1;REN=1

       TH1=0xfd;

       TL1=0xfd;

       TR1=1;

       a=strlen(ss);

          for(b=0;b<a;b++)

          {SBUF=ss;}

        }



http://cache.amobbs.com/bbs_upload782111/files_6/armok01117334.JPG

alisha 发表于 2006-5-14 22:53:22

在VIRTUAL TERNINAL上点击右健,选字符显示!

wlss 发表于 2006-5-17 18:20:40

谢谢alisha大哥,我点了,可那就什么也没有了,郁闷得很,请问串口仿真,除了波特率还有什么应该注意的吗?烦请看一下程序有什么问题没?谢谢

alisha 发表于 2006-5-17 20:51:57

你在发数据的时候要检查UDRE状态。

下面是GCC的程序:

oop_until_bit_is_set(UCSRA,UDRE);



USART要注意停止位,校验位等的设置

SW7005 发表于 2006-7-4 09:36:02

谢谢

dyh386 发表于 2008-3-26 12:33:51

在VIRTUAL TERNINAL上点击右健,选字符显示!


Thanks
原来是这问题。难怪我看到的都是乱码。郁闷了三天。

xuhaikun 发表于 2008-5-6 21:23:09

我一直以为是程序错了......
呵呵,原来要在VIRTUAL TERNINAL上点击右健,选Hex Display Mode 才能显示数据!
谢谢...

pish 发表于 2009-2-2 21:13:28

修改一下就可以了

for(b=0;b&lt;a;b++)&nbsp;

{

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SBUF=ss;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!TI);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TI&nbsp;=&nbsp;0;

}&nbsp;

yuanfang 发表于 2009-4-28 17:30:57

mark,学习!
页: [1]
查看完整版本: 这是我做的一个串口通信的例子,大家看看