在项目设计中,会经常有关于uart的协议的发送,例如(帧头 ff fe 数据12 34 56 78)
首先串口 通信 对应RS 232标准有两根线RS232_TX 和rs32rx,属于异步全双工通信,由于干扰,导线电阻等原因传输距离最大约为15m 最高速率为20kb/s
简单的串口帧格式:1位起始位(保持一个传输周期的低电平)+8位数据,无校验位,1位停止位(高电平)共十位数据
串口通信模块主要包括 分频模块--配置波特率、发送(接受)模块
分频模块--配置波特率 这个分频参数如何设置呢?
/////////////////////////特权的设计////////////////////////////////////
`define bps9600 5207/2 //������Ϊ9600bps
`define bps19200 2603/2 //������Ϊ19200bps
`define bps38400 1301/2 //������Ϊ38400bps
`define bps57600 867/2 //������Ϊ57600bps
`define bps115200 433/2 //������Ϊ115200bps
/////////////////////////////////////////////////////////////
假如需要115200bps 则,50mhz/115200=50000000/115200=433
`define BPS_PARA 433
`define BPS_PARA_2 216
这表示什么意思呢,115200表示1s传送115200位,则可以计算出1位时间8680ns,在除以周期20ns就是433了,,也就是说发送一个1个字节,需要消耗10*8680ns的时间,即4330个时钟周期,见下图:
0
|
|
|
|
我只是吧核心的打包了,随便找个串口程序加入就行了哈
|
|
|
|
|
|
|
-
洪某某
2018-9-6 22:25
有什么问题可以私信我;836843065@qq.com
|
|
|