单片机uart通讯中的UART通讯的波特率设置问题
单片机在UART通讯时,如果方式设为零,在书上可以查到是单片机的晶振频率/12,单片机一般是12个晶振周期为一个时钟周期,照这样推算,就应该是一个周期内发送或者接受一个数...
单片机在UART通讯时,如果方式设为零,在书上可以查到是单片机的晶振频率/12,单片机一般是12个晶振周期为一个时钟周期,照这样推算,就应该是一个周期内发送或者接受一个数据位,12mhz的晶振每秒12*10^6个周期,也就是说,每秒可以发送10^6个数据位,这时候的波特率是1mbit/s,那么在数据传输时波特率岂不是要设为1000,但是常用的为什么没有1000?
展开
3个回答
展开全部
方式零,不属于 UART,是 SPI 。
-----------
楼主弄混了概念。
51 单片机在串口方式0时,称为《同步传送方式》,并不是 UART (异步)方式。
两者并不兼容。
在同步传送方式,以 P3.0 输入、输出数据,以 P3.1 输出同步脉冲。
注意,数据的输入、输出,都是从 P3.0 走的。
在同步传送方式,数据的传输速度是 1M bit/s。比 UART,要快得很多。
而且,在同步传送方式,没有起始位、校验位和结束位,每一位,都是数据。
因此,在《同步传送方式》,并没有常说的 9600、4800...,等波特率。
同样,在 UART 中,也就没有 1M bit/s 这样的说法。
--每秒可以发送10^6个数据位,这时候的波特率是1mbit/s,
--那么在数据传输时波特率岂不是要设为1000,但是常用的为什么没有1000?
把它们混在一起讨论,是楼主的基本概念不清的表现。
楼主所选的答案,也没有搞清串口方式0的特点,只是用 UART 的理论来解释《同步传送》。
葫芦搅茄子而已,呵呵
-----------
楼主弄混了概念。
51 单片机在串口方式0时,称为《同步传送方式》,并不是 UART (异步)方式。
两者并不兼容。
在同步传送方式,以 P3.0 输入、输出数据,以 P3.1 输出同步脉冲。
注意,数据的输入、输出,都是从 P3.0 走的。
在同步传送方式,数据的传输速度是 1M bit/s。比 UART,要快得很多。
而且,在同步传送方式,没有起始位、校验位和结束位,每一位,都是数据。
因此,在《同步传送方式》,并没有常说的 9600、4800...,等波特率。
同样,在 UART 中,也就没有 1M bit/s 这样的说法。
--每秒可以发送10^6个数据位,这时候的波特率是1mbit/s,
--那么在数据传输时波特率岂不是要设为1000,但是常用的为什么没有1000?
把它们混在一起讨论,是楼主的基本概念不清的表现。
楼主所选的答案,也没有搞清串口方式0的特点,只是用 UART 的理论来解释《同步传送》。
葫芦搅茄子而已,呵呵
展开全部
一般设置为2400的整数倍速,如2400, 4800,9600 19200。。。115200. 当然你设置为1000也可以的。
//*******************************************************************
//函数名称:void SetBps(u16 uiBps)
//函数功能:设置串口接收数据的BPS
//入口参数:uiBps:接收数据的波特率
//*******************************************************************
void SetBps(u32 ulBps)
{
u16 uiDat;
uiDat = 65536 - CRYSTAL/ulBps/32;
TH2 = uiDat/256;
RCAP2H = uiDat/256;
TL2 = uiDat%256;
RCAP2L = uiDat%256;
TR2 = 1;
REN = 1;
}
//*******************************************************************
//函数名称:void SetBps(u16 uiBps)
//函数功能:设置串口接收数据的BPS
//入口参数:uiBps:接收数据的波特率
//*******************************************************************
void SetBps(u32 ulBps)
{
u16 uiDat;
uiDat = 65536 - CRYSTAL/ulBps/32;
TH2 = uiDat/256;
RCAP2H = uiDat/256;
TL2 = uiDat%256;
RCAP2L = uiDat%256;
TR2 = 1;
REN = 1;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议你看看波特率与晶振的计算与关系,http://blog.csdn.net/zzwdkxx/article/details/8873061
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询