PIC中UART的配置问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PIC中UART的配置问题
Microchip公司的PIC16系列8位单⽚机,以其性价⽐⾼,⽽闻名业界,⽬前已成为很多电⼦产品的⾸选。

PIC16系列中有⼀个USART(串⾏通信接⼝)接⼝模块。

USART可以配置为全双⼯异步系统,与CRT终端和个⼈PC等外设进⾏通信,也可配置为半双⼯同步系统,与A/D或D/A集成电路以及串⾏EEPROM等外设进⾏通信。

设置异步发送模式时必须遵循以下步骤:
1. ⽤合适的波特率初始化SPBRG 寄存器。

如果需
要⾼速波特率,将BRGH 位置1 (第11.1 节
“USART 波特率发⽣器”)。

2. 通过将SYNC 位清零并将SPEN 位置1 使能异
步串⾏端⼝。

3. 如果需要中断,应将中断允许位TXIE 置1。

4. 如果需要发送9 位数据,应将发送位TX9 置1。

5. 通过将TXEN 位置1 使能发送,此操作同时也会
将TXIF 位置1。

6. 如果选择发送9 位数据,应该将数据的第9 位装
⼊TX9D 位。

7. 将数据装⼊TXREG 寄存器(开始发送)。

8. 若想使⽤中断,请确保将INTCON 寄存器中的
GIE 和PEIE 位(bit 7 和bit 6)置1。

设置异步接收模式时必须遵循以下步骤:
1. ⽤合适的波特率初始化SPBRG 寄存器。

如果需
要⾼速波特率,将BRGH 位置1 (第11.1 节
“USART 波特率发⽣器”)。

2. 通过将SYNC 位清零并将SPEN 位置1 使能异
步串⾏端⼝。

3. 如果需要中断,应将中断允许位RCIE 置1。

4. 如果需要接收9 位数据,则将RX9 位置1。

5. 将CREN 位置1 使能接收。

6. 当接收完成时标志位RCIF 将被置1,此时如果
允许位RCIE 置1,将会产⽣⼀个中断。

7. 读RCSTA 寄存器获取第9 位数据(如果已使
能),并判断在接收操作中是否发⽣错误。

8. 通过读RCREG寄存器来读取接收到的8位数据。

9. 如果发⽣错误,通过将使能位CREN 清零清除错
误。

10. 如果使⽤中断,请确保INTCON 寄存器中的GIE
和PEIE (bit 7 和bit 6)已置1。

以上是最基本的配置过程。

⽽在⽤MPLAB ICD2仿真时,需要在MPLAB IDE环境中设置“配置位”,这是⾮常重要的,如果配置位设置出现问题,波特率就会受到影响,导致接受和发送数据出现错误。

本⼈在开发过程中就遇到过类似的问题。


PIC16F877A环境下接受,发送正常,将CPU改变为PIC16F913后,发送和接受都出现问题,就是由于配置位的设置出现的错误。

还有对于串⼝通信⽽⾔是⽐较稳定和可靠的,如果已经调通,忽然某⼀天出现问题,如果配置没有改动,⼀定就是硬件出现问题了,本⼈就曾遇到过这样的问题,是232电平转化芯⽚被击穿了。

相关文档
最新文档