百问7天物联网智能家居实战训练营基础班 —— 串口通信

按照数据传输的方式,可分为串行通信和并行通信:

串行通信:信号依次传输,占用的数据线少成本低但是通信速度较慢,串行通信受信号之间干扰较小

并行通信:可同时传输,占用的数据线多成本高但是通信速度快,较易受信号干扰

全双工/半双工/单工传输:

                 

同步/异步通信:

异步通信:需要收发双方自行保证一样的节奏,比如串口即要求双方波特率相同。还有种方式是对数据进行封装,在数据的开头加上起始信号,结尾加上终止信号。

 同步通信:加一个时钟信号,发送方和接收方在这个节拍下传输数据(如SPI,I^{2}C),因此可通过是否有时钟信号来判断是同步通信还是异步通信。

 串口连接和时序:

串口在嵌入式中经常会用到,常用于:

1.连接串口接口的模块,比如芯片的串口和各种模块的串口的连接至少需要三个引脚,分别是发送引脚、接收引脚和接地引脚。收发设备的收发引脚需要交叉连接,接地连接作为电压的参考。

2.作为调试口,打印程序的运行状态信息

3.通过电平转换芯片转为RS232和RS485电平用于复杂恶劣的工业环境

               

串口数据传输的格式:

波特率:即每秒传输多少比特位,体现了传输速度的快慢,波特率越高传输速度越快

在默认情况下引脚电平为高电平,会发出一个逻辑0信号表示数据的开始,这一位称之为起始位。之后发送5~8位的逻辑0或者1(先传输第0位再传输第1 位以此类推)称之为数据位。最后加上一个校验位校验数据传输的准确性。最后是停止位,再次将引脚变为高电平。

                

 UART选择异步通信后生成代码

UART_HandleTypeDef huart1;                        //定义串口的结构体
 
  huart1.Instance = USART1;                       //表明要操作的串口是串口1
  huart1.Init.BaudRate = 115200;                  //波特率是115200
  huart1.Init.WordLength = UART_WORDLENGTH_8B;    //数据位是8位
  huart1.Init.StopBits = UART_STOPBITS_1;         //停止位是1位
  huart1.Init.Parity = UART_PARITY_NONE;          //没有奇偶校验位
  huart1.Init.Mode = UART_MODE_TX_RX;             //模式为发送和接收
  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;    //没有硬件留空

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值