打印

STC15W单片机串口TX设置成推挽输出无法通行,帮忙看下,急!

[复制链接]
2354|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
wozaihuayu|  楼主 | 2017-8-31 17:59 | 只看该作者
都设置成准双向口可以正常通行,改成上面就不可以了

使用特权

评论回复
板凳
wozaihuayu|  楼主 | 2017-8-31 18:07 | 只看该作者
哎,刚写完,改了下程序,我程序中再串口初始化之前有这样的几句

        P01=0;
        P31=0;
        Delay_ms(1000);
        Uart3Init();       

就是我设置相应口输出低,这样的话就不行了,如果去掉
        P01=0;
        P31=0;
两句,就可以了,这是什么原因呢?

使用特权

评论回复
地板
vftom3| | 2017-8-31 21:59 | 只看该作者
要读取引出脚的数据必须要设置为高才能读取正确   设置成低 如果数据是高也会被拉低所以会读取不正确

使用特权

评论回复
5
qd118| | 2017-8-31 21:59 | 只看该作者
恭喜你,其实你自己已经找到原因了

使用特权

评论回复
6
chunyang| | 2017-8-31 22:14 | 只看该作者
这是IO复用的结果,由集成电路内的IO电路设计决定,楼主去找IO内电路看看便知。IO内电路在部分51的器件手册上有。

使用特权

评论回复
7
wozaihuayu|  楼主 | 2017-9-1 08:43 | 只看该作者
chunyang 发表于 2017-8-31 22:14
这是IO复用的结果,由集成电路内的IO电路设计决定,楼主去找IO内电路看看便知。IO内电路在部分51的器件手册 ...

其实我也觉得是这样的,但是找STC手册关于IO介绍,也只是说了其几种输入输出模式的结构,
并没有说跟串口有什么关系(在串口章节也没有找到)。
我也纳闷,我是先用IO口方式输出低,再初始化相应的IO口的串口,按说相应IO应该按最后的设置,变成串口才是,但是他就是不能正常通行!

使用特权

评论回复
8
chunyang| | 2017-9-1 22:44 | 只看该作者
wozaihuayu 发表于 2017-9-1 08:43
其实我也觉得是这样的,但是找STC手册关于IO介绍,也只是说了其几种输入输出模式的结构,
并没有说跟串口 ...

该图并没有给出更前面的电路,我的印象中,前面还有个双输入的逻辑门,正是这个逻辑门以及更前面的锁存器导致的该问题。所以,使用特殊功能时要先给IO置1。

使用特权

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

本版积分规则

39

主题

261

帖子

4

粉丝