打印

搞pic单片机真要看看手册。。。。

[复制链接]
1962|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zjswuyunbo|  楼主 | 2010-1-28 15:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
while(!TXIF)  continue;
        TXREG = buf[0];
        while(!TXIF)  continue;
        TXREG = buf[1];
        while(!TXIF)  continue;
        TXREG = buf[2];
        while(!TXIF)  continue;
        TXREG = buf[3];
上面并没有发出4个数据。。。。。
改为下面的
        while(!TXIF)  continue;
        TXREG = buf[0];
        DelayUs(5);
        while(!TXIF)  continue;
        TXREG = buf[1];
        DelayUs(5);
        while(!TXIF)  continue;
        TXREG = buf[2];
        DelayUs(5);
        while(!TXIF)  continue;
        TXREG = buf[3];
才能发出4个数据。。。。。
感慨下,看了手册,大概是TXIF变化比代码执行慢,覆盖了之前的数据。。。。。
沙发
wshlxa| | 2010-1-29 13:15 | 只看该作者
共同学习,积累经验

使用特权

评论回复
板凳
yewuyi| | 2010-1-29 13:42 | 只看该作者
这属于基本常识的问题。

使用特权

评论回复
地板
zjswuyunbo|  楼主 | 2010-1-29 22:50 | 只看该作者
好像其他的单片机并没有这样的问题…

使用特权

评论回复
5
牛牛特工| | 2010-2-1 09:34 | 只看该作者
本帖最后由 牛牛特工 于 2010-2-1 09:44 编辑

检测TRMT(发送移位寄存器空)进行发送  
而不是仅检测 TXIF(BUF空)  TXIF 通常是常高的
仅会在填入TXREG后置低一小段时间
即TXREG被送入移位寄存器后置高(此时发送才刚刚开始)

这个问题我也遇到过 别人告诉我的 后来看手册也确实是如此
你可以参看pic自己的Sample
叶公应该也知道这个 他就是不说

使用特权

评论回复
6
zjswuyunbo|  楼主 | 2010-2-1 09:47 | 只看该作者
谢谢,楼上的指教!!
学习了。。。

使用特权

评论回复
7
zjswuyunbo|  楼主 | 2010-2-1 09:48 | 只看该作者
叶公应该也知道这个 他就是不说:L

使用特权

评论回复
8
nlgz| | 2010-2-2 20:19 | 只看该作者
pic 的就这样,还以为别的单片机也都这样。

使用特权

评论回复
9
zaizia| | 2010-2-25 16:21 | 只看该作者
学习了

使用特权

评论回复
10
guangods| | 2012-12-22 14:14 | 只看该作者
还没正式开始PIC的学习!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

163

主题

1578

帖子

1

粉丝