打印

PIC异步串口 TX引脚的配置问题

[复制链接]
4145|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
RT
查看手册,描述如下

但在测试时出现如下波形:


如果手动将TX脚配置为输出,则波形正常,如下:


同时,如果在硬件上TX脚加上拉电阻,波形也是正常的,如图2.

但是官方笔记中的示例代码却是将TX脚置为输入,代码如下:
SetupSerial: Bank1 ;select bank 1
movlw 0xc0 ;set tris bits for TX and RX
iorwf TRISC,F
movlw SPBRG_VAL ;set baud rate
movwf SPBRG
movlw 0x24 ;enable transmission and high baud rate
movwf TXSTA
Bank0 ;select bank0
movlw 0x90 ;enable serial port and reception
movwf RCSTA
clrf Flags ;clear all flag bits

call InitTxBuffer ;initialize transmit buffer
call InitRxBuffer ;initialize receive buffer

movlw 0xc0 ;enable global and peripheral ints
movwf INTCON
Bank1 ;select bank1
movlw 0x30 ;enable TX and RX interrupts
movwf PIE1
return

很糊涂,求解!
沙发
yewuyi| | 2013-5-17 10:11 | 只看该作者
TX脚的IO方向设置为输出,RX脚的IO方向设置为输入。

代码中设置IO方向的代码就这两句:
02.movlw 0xc0 ;set tris bits for TX and RX
03.iorwf TRISC,F

你可以按照这个对着数据手册核对,如果和我说的“TX脚的IO方向设置为输出,RX脚的IO方向设置为输入。”不一致,则按照我所说的为准。

使用特权

评论回复
板凳
a250871207|  楼主 | 2013-5-17 10:24 | 只看该作者
yewuyi 发表于 2013-5-17 10:11
TX脚的IO方向设置为输出,RX脚的IO方向设置为输入。

代码中设置IO方向的代码就这两句:

02.movlw 0xc0 ;set tris bits for TX and RX
03.iorwf TRISC,F

这两条指令不是将TRISC 与 0xc0相或吗?
这样的话TRISC6(TX),TRISC7(RX)都配置为输入了啊


如果不一致,意味着所有的文档都是错误的?   版主V5  

使用特权

评论回复
地板
NE5532| | 2013-5-17 10:25 | 只看该作者
从道理上来说,很多单片机在开启第二功能后,将自动接管口线,从数据手册上理解,PIC是这样说的,但是保险起见,TX设置为输出,RX设为输入为妙。另外楼主也要检查是否硬件问题,建议TX悬空再测一下输出波形。

PS:现在MICROCHIP的数据手册也是漏洞百出,快赶上STM32了。

使用特权

评论回复
5
yewuyi| | 2013-5-17 10:28 | 只看该作者
NE5532 发表于 2013-5-17 10:25
从道理上来说,很多单片机在开启第二功能后,将自动接管口线,从数据手册上理解,PIC是这样说的,但是保险 ...

MCHP现在提供了一些未受控版的中文手册,因为还没有经过完全校对,但因为用户催的急,就先放出来了。
未受控版的在手册上都提示了可能有翻译错误,呵呵,没办法,急火烧出来的饭,怎么着也有点口味欠佳。

完全受控后的中文手册,其错误还是很少的。

使用特权

评论回复
6
yewuyi| | 2013-5-17 10:30 | 只看该作者
a250871207 发表于 2013-5-17 10:24
02.movlw 0xc0 ;set tris bits for TX and RX
03.iorwf TRISC,F

具体ASM指令,请查手册确定,我记不得了。

还有一个简单快捷办法,把它拷贝到MPLAB下面SIM方式跑一下看看TRISC的数值是多少?

使用特权

评论回复
7
NE5532| | 2013-5-17 10:32 | 只看该作者
yewuyi 发表于 2013-5-17 10:28
MCHP现在提供了一些未受控版的中文手册,因为还没有经过完全校对,但因为用户催的急,就先放出来了。
未 ...

呵呵,叶工,我说的是英文版,你知道我从来不看中文版的。

使用特权

评论回复
8
a250871207|  楼主 | 2013-5-17 10:35 | 只看该作者
贴中我也有发英文片手册描述,与中文是一致的,看来这就是PIC内部搞的了  
尽信书不如无书  太相信手册了   谢两位了   以后还是要相信自己!!!!

使用特权

评论回复
9
yewuyi| | 2013-5-17 10:35 | 只看该作者
NE5532 发表于 2013-5-17 10:32
呵呵,叶工,我说的是英文版,你知道我从来不看中文版的。

呵呵,这到真没注意,MCHP的中文资料做的太好了,我看MCHP资料时,都只看中文不看英文了。

使用特权

评论回复
10
NE5532| | 2013-5-17 10:42 | 只看该作者
a250871207 发表于 2013-5-17 10:35
贴中我也有发英文片手册描述,与中文是一致的,看来这就是PIC内部搞的了  
尽信书不如无书  太相信手册了   ...

也不是,作为芯片开发者和你交流的平台,数据手册是第一应该相信的,只是要知道里面不是全对。所以你自己需要保留一些“常人思维”,比如我们把TX设置输出,RX设为输入,即使写数据手册的人脑袋短路,你也不会撞到枪口上去。

怕的是一些不按常规出牌的,比如前段时间搞STM32,把法国人祖宗都搬出来骂过了。:lol

使用特权

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

本版积分规则

6

主题

107

帖子

1

粉丝