智能车制作

标题: 自己编写的串口通信程序 [打印本页]

作者: 自明了然    时间: 2012-2-14 20:01
标题: 自己编写的串口通信程序
这几天写了关于xs128的sci串口通信程序,结果经本人测试只有busclock在8M.或超频到16M时才可以接收到helloworld,其他超频到32M,64M都收不到数据,下面是我的程序(其中16M那个能收到数据,64M不能收到,另外里面有串口调试助手可能误认为是”病毒“没事的),大家帮忙分析下......
[attach]17911[/attach]

补充内容 (2012-12-4 10:04):
转眼一年过去了这篇帖子还在竟被下载了几百次,实际上两个程序都是正确的能用,只因当时懒省事没接5v电源用的是下载线上的5v,所以导致超频后接受不到数据,大家以后应定要确保硬件没问题再调程序,当时郁闷了好几天
作者: GD智能车    时间: 2012-2-15 09:28
哈哈   谢谢分享











智能车淘宝网站http://zhinengche.taobao.com 升一钻,优惠促销
作者: zjh3123629    时间: 2012-2-15 11:00
SCI0BD = (unsigned char)((128000000UL /* OSC freq */ / 2) / 9600 /* baud rate */ /16 /*factor*/);
SCIBD分为SCIBDH和SCIBDL,是一个16位的寄存器,你用unsigned char来强制转化,只能赋值给低8位即SCIBDL,而SCIBDH里面是空的,而波特率是13位的,SCIBDH里面也分到了几位,那你这个语句赋值肯定是会出错的,把(unsigned char)去了可能就出来了,你自己看看
我看了时钟和SCI初始化,时钟设置是应该正确的,SCI初始化你改改,再出不来就是你的发送程序有问题,但是既然你低频率能发的话,那发送程序应该是正确的,
所以应该是你把(unsigned char)去了就OK了,自己试试

有时候,出问题最好自己好好琢磨下,看下寄存器,xs128的模块还是比较好写的,网上资料也多,我觉得自己弄出来的和别人和你讲的,效果和成就感都差很多,呵呵
作者: 夜马行空    时间: 2012-2-15 14:04
好强,
作者: 柯南一梦    时间: 2012-2-15 16:36
3楼的 好强哈.....
作者: 奥特曼11    时间: 2012-3-24 17:03
厉害
作者: 黄河浪    时间: 2012-3-26 22:11

作者: guohel    时间: 2012-4-1 00:47
thanku
作者: 璺鋈    时间: 2012-5-12 16:13
灰常感谢
作者: liu2010cq    时间: 2012-6-13 01:10
zjh3123629 发表于 2012-2-15 11:00
SCI0BD = (unsigned char)((128000000UL /* OSC freq */ / 2) / 9600 /* baud rate */ /16 /*factor*/);
S ...

http://www.znczz.com/forum.php?mod=viewthread&tid=102056&extra  大神,能不能帮忙看看这个
作者: 蜈蚁蝗    时间: 2012-10-20 23:32
{:soso_e142:}




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2