20楼#
发布于:2004-03-10 11:33
串口程序是很简单的,我估计是是你波特率没算对,注意波特率要受CKCON的影响哦 这个位是CLK24/4,CLK24/12不会有这么大的差距吧。我认为该考虑的地方我都考虑了,一定是哪里丢了一点。可不可以把你串口通讯的代码发一份给 我看看。先谢了!邮箱在下面! |
|
|
21楼#
发布于:2004-03-10 11:38
用户被禁言,该主题自动屏蔽! |
|
22楼#
发布于:2004-03-10 11:58
谢谢pengenwen。我给分了。 :D
|
|
|
23楼#
发布于:2004-03-10 12:03
我第一次给了一部分分,没有给完。现在给分为什么不能给分呀?
昏! |
|
|
24楼#
发布于:2004-03-10 12:57
大哥。这两句话是什么意思呀?
while(TI == 0); TI = 0; 应该是 while(TI == 1); TI = 0; 现在程序不是死在 这里吗? 我改了以后呢,现在计算机还是收不到数据。 我把上面的程序加到了我的 TD_Init (void) 函数里面。Txd引脚上面没有波特率产生。 并且我拔了MAX232也是一样。 [编辑 - 3/10/04 by author22] |
|
|
25楼#
发布于:2004-03-10 13:19
应该是:
while(TI == 0); TI = 0; 表示等到数据发完才返回。(因为数据发完TI会由0变1的). 你的晶振是多少,这很关键!!! |
|
|
26楼#
发布于:2004-03-10 13:22
12M的。我是方式1呀,应该是发完了自动置TI位为1呀,然后程序使它变为0,清除发送标志位呀。
[编辑 - 3/10/04 by author22] [编辑 - 3/10/04 by author22] |
|
|
27楼#
发布于:2004-03-10 13:40
我是方式1呀,应该是发完了自动置TI位为1呀,然后程序使它变为0,清除发送标志位呀。
|
|
|
28楼#
发布于:2004-03-10 13:43
所以while(TI == 0)呀,
因为它不会立刻变成1,所以这个while的时间会持续一个字节发送的时间。然后清掉它。否则,连续发送会重叠。 |
|
|
29楼#
发布于:2004-03-10 13:47
恩,当while(TI==0)的时候,TI=0.当发送后TI=1。这时必须要有软件来清除这个标志位呀。使TI=0呀。我debug的时候。程序在这里跑飞了。我的Txd引脚上面就一直是低电平,用示波器看。
[编辑 - 3/10/04 by author22] |
|
|
30楼#
发布于:2004-03-10 14:09
这个是查询方式。不适合作中断方式。
|
|
|
31楼#
发布于:2004-03-10 14:43
恩,是查询方式。我在前面设置了PORTCCFG=0x03 。我是怀疑PC口不是交替功能。sbuf0或者sbuf1里面数据都写进去了,波特率现在好点,只有1%的误差。但是Txd上面就没有波形产生。计算机收不到数据是正常。2131的硬件部分我都检查了几遍了。你写过这种代码吗?我想要一个完整的调试成功的代码看看。先谢了。
|
|
|
32楼#
发布于:2004-03-10 15:26
我没有完整的代码。
但如果TXD没有波形,有可能你使发送使能有效。 |
|
|
33楼#
发布于:2004-03-10 15:55
恩,打开使能位,是哪个使能位?PC^0,PC^1 ? 还是.....?如果你有时间的话,可以看看我的代码?现在有波形了。我把代码几乎完全删掉了,只有这一块,昨天我是用的中断,和现在一样,还比较好看的波形,波特率的。
|
|
|
34楼#
发布于:2004-03-10 15:58
MAX232的T1out上面也有波形,一样的,就是是232电平。不过计算机还是收不到数据。昨天也是这样的。
|
|
|
35楼#
发布于:2004-03-10 16:02
你有MSN吗?我的MSN在下面。
|
|
|
36楼#
发布于:2004-03-10 16:03
你有MSN吗?我的MSN在下面。波特率还是不匹配!
|
|
|
37楼#
发布于:2004-03-10 16:05
那基本上就剩波特率和D9(相当于奇偶校验)的问题了。
switch(ucParity) { case COMM_PARITY_NONE: SCON = 0x70; break; case COMM_PARITY_MARK: SCON = 0xf8; break; case COMM_PARITY_SPACE: SCON = 0xd0; break; case COMM_PARITY_ODD: case COMM_PARITY_EVEN: default: // ReportFatalError(pErrorParity); break; } |
|
|
38楼#
发布于:2004-03-10 16:12
成功了,谢谢。串口线断了,郁闷!换了一根,谢谢各位。
|
|
|
39楼#
发布于:2004-03-10 16:34
God!!!
|
|
|