赞
踩
切记:永远不要在同一个地方跌倒两次
在UART通讯中,为什么我们常用的波特率是115200呢,首先,要明白,波特率代表的是信道的数据传输速度,波特率越高,数据传输速度也就越快;第二,假设发送方和接收方没有约定一个共同的波特率,那么他们就无法正确地解析对方发送的数据,从而导致通信失败。那么,言归正传,115200的值从何而来,看下图,这是我们一般cubemx的配置,修改高速外部时钟为外部晶振。
Disable:禁用外部时钟
BYPASS Clock Resource:外部有源晶振(旁路时钟源)
Crystal/Ceramic Resonator:外部无源晶振(陶瓷晶振)
我们选择的一般为无源晶振,其应用场景比较多,无需外部供电。有源晶振顾名思义,需要外部供电,由一个引脚输出固定频率波形。
晶振在串行通信中扮演着关键角色,因为它提供了时钟信号,用于同步发送和接收数据。晶振的频率直接影响着串口通信的波特率的计算和稳定性。具体来说,晶振频率决定了串口通信中使用的时钟信号频率。通常情况下,晶振的频率高于串口通信所需的时钟频率,因此需要通过分频器将其降低到合适的水平,以匹配所需的波特率。
在现代计算机和嵌入式系统中,晶振频率通常很高,标准晶振频率通常为11.0592 MHz,这个频率是由外部晶振提供的,但UART芯片需要的时钟信号频率通常较低。因此,需要将晶振频率进行分频,从而得到一个较低频率的时钟信号。在115200波特率下,需要将11.0592 MHz的晶振频率分频6倍,得到得出1.8432 MHz的时钟信号。又因为串行通信通常使用16倍过采样技术,也就是每个比特会被采样16次。因此,需要将1.8432 MHz的时钟频率再除以16,就得到了115200 Hz的波特率。
好,知道了这个,换个问题
对了,你知道,uart,IIC,spi吗?
uart:全双工,异步串行总线
emmm,一般为三线,GND(地线),TXD(发送数据),RXD(接收数据),它的协议格式一般为1位起始位,(5,6,7,8)位数据位,1位校验位,(1,1.5,2)位停止位,同时需要包装双方波特率一直,常用的有115200,9600,并且UART在数据传输时不需要时钟信号,我可没说时钟信号在波特率生成和数据采样过程中没有用处;
IIC:低速,半双工,同步串行总线
emmm,IIC有两根线SDA(数据线)和SCL(时钟线)
spi:高速,全双工,同步串行总线
emmm,SPI有四根线,分别为SCLK(时钟信号),MOSI(主设备输出,从设备输入),MISO(主设备输入,从设备输出),CS(片选信号)
特点:MQTT是一种轻量级、基于发布/订阅模式的消息传输协议,用于物联网设备间的通信。
应用:广泛应用于物联网平台,用于传输传感器数据、控制命令和设备状态信息等。
ok,zigbee看完,睡觉了,晚安
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。