18f14k50与18f45j50串口问题

[复制链接]
3253|9
 楼主| 453369672 发表于 2011-8-24 16:50 | 显示全部楼层 |阅读模式
使用串口通信时发现18f14k50发送八位数据+1位停止位;18f45j50发送八位数据+2位1
不知45j50后面的两个1都是停止位吗?看了半天也没有找到相关设置停止位的寄存器,寻求高手解答。。。
yewuyi 发表于 2011-8-24 17:47 | 显示全部楼层
可能另一位是校验位吧!?

你确定没有弄错 ?
 楼主| 453369672 发表于 2011-8-25 08:42 | 显示全部楼层
2# yewuyi
没有,所有的配置我都看了,没有校验位的设置。
251566208 发表于 2011-8-25 09:30 | 显示全部楼层
20.2 EUSART 异步模式
通过将SYNC 位(TXSTAx<4>)清零可选择异步工作
模式。在此模式下, EUSART 使用标准的不归零
(Non-Return-to-Zero,NRZ)格式(1 个起始位,8 个
或9 个数据位, 1 个停止位)。
是不是配置成了9位数据格式,自己不知道
 楼主| 453369672 发表于 2011-8-25 10:29 | 显示全部楼层
4# 251566208
没有,配置的就是8位数据格式。
TXSTA1bits.SYNC = 0;
// Asynchronous mode

TXSTA1bits.TX9 = 0;
// 8位数据发送

TXSTA1bits.SENDB = 0;
// 下次发送时发送同步间隔符

TXSTA1bits.BRGH = 1;
// High Speed

TXSTA1bits.TXEN = 1;
// 使能发送



RCSTA1bits.RX9 = 0;
// 8位数据接收

RCSTA1bits.CREN = 1;
// 连续接收器使能 异步模式
251566208 发表于 2011-8-25 10:40 | 显示全部楼层
为什么要同步间隔符?
251566208 发表于 2011-8-25 10:48 | 显示全部楼层
同步间隔符是在LIN总线时才会用 到
如果没有做LIN总线,最好不要用
 楼主| 453369672 发表于 2011-8-25 13:36 | 显示全部楼层
7# 251566208
不发同步间隔符也是这种情况
yewuyi 发表于 2011-8-25 13:52 | 显示全部楼层
1、停止位不需要设置,只要启动了串口模块通信,只自动添加的。
2、18f45j50发送八位数据+2位1,你这2位1是什么设置出来的 ?
3、在9位数据位模式下,一个数据帧是11个位,在8位数据位模式下,一个数据帧是10个位,第9位可以用做奇偶校验位,也可以做为主从地址位,也可以作为第9位数据位,看你自己怎么用了
 楼主| 453369672 发表于 2011-8-25 17:08 | 显示全部楼层
9# yewuyi
我也搞不清楚这两位1怎么来的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

38

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部