| 串口是一种全双工通讯方式

单工

数据传输只支持数据在一个方向上传输

半双工

允许数据在两个方向上传输,在同一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信

全双工

允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力

异步串口常见连接方式

相同端口数据传输

不同端口数据传输

这里必须保证通讯两端数据共地,此外还需注意不同端口间的电平转换,如TTL、232.

| 异步通讯时序图

这里以8位字长为例,进行数据传输时,接收方首先捕捉数据起始位- -由高电平到低电平的数据跳变,低电平会保持一个数据周期(空闲时,数据线保持高电平)

1-8-1

紧接着起始位的是8位有效数据(低地址数据LSB在前),这里特别注意,若设置了奇偶校验,奇偶校验位会占据一位有效数据即写进数据寄存器数据的MSB位被校验位替换后发送出去,如下表所示:

最后为1位停止位,停止位为有效高电平

| 奇偶校验

使能校验功能后,写进数据寄存器的数据的MSB位被校验位替换后发送出去(如果选择偶校验偶数个’1’,如果选择奇校验奇数个’1’)。

偶校验:校验位使得一帧中的7或8个LSB数据以及校验位中’1’的个数为偶数。
例如:数据=00110101,有4个’1’,如果选择偶校验,校验位是’0’。 奇校验:此校验位使得一帧中的7或8个LSB数据以及校验位中’1’的个数为奇数。
例如:数据=00110101,有4个’1’,如果选择奇校验,校验位是’1’。

| 波特率的产生

RX/TX 波特率=FCK/(16*USARTDIV )

这里的FCK为串口模块的输入时钟频率,通常首先确定想得到的波特率,而后通过上述公式,解得USARTDIV ,进而将USARTDIV的小数和整数部分分别填入波特率寄存器(USART_BRR)的整数DIV_Mantissa和小数DIV_Fraction部分中。
例如: 求得 USARTDIV = 25.62时,就有:DIV_Fraction = 16*0.62 = 9.92 最接近的整数是: 10 = 0x0A DIV_Mantissa = mantissa (25.620) = 25 = 0x19于是, USART_BRR = 0x19A

| 异步串口通讯的基本配置过程

1. 使能串口及对应引脚时钟

2. 配置引脚,根据需要决定是否重映射

TX输出引脚 -- 传输速率50M_hz,复用推挽输出

RX输入引脚 -- 浮空输入

3.串口参数初始化

设置字长、停止位个数、是否开启校验位及选择校验方式(CR1、CR2寄存器),波特率设置

4. 配置中断优先级

抢占优先级、子优先级,使能中断通道

5. 根据需要,开启串口部分中断(CR1)

6. 使能串口(CR1)

stm32串口有独立的收发能力,可根据需要单独开启/关闭接收、发送单元

imx6 配置串口波特率_stm32异步串口(uart)通讯基本操作相关推荐

  1. 基于STC15W4K48S4芯片的温度检测控制系统(支持手机蓝牙和串口屏的异步串口通信)

    目标功能 实现温度的实时检测,并通过两个异步串口将数据发送至串口屏HMI和与蓝牙模块相连接的手机上.支持手机APP和串口屏进行实时的相关数据更改.单片机根据数据要求,当实时温度不在合理范围时,做出应激 ...

  2. imx6 配置串口波特率_RS232串口多机通信

    一.基本原理 1.主从多机通信拓扑图 2.主从多机通信的具体过程 1)使所有的从机的SM2位置1,以便接收主机发来的地址: 2)主机发出一帧地址信息,其中包括8位需要与之通信的从机地址,第9位为1: ...

  3. MSP430程序库二UART异步串口

    串行通信接口是处理器与其他设备进行数据通信最常用的方式之一.我的这个程序库是针对MSP430f14系列和MSP430f16系列的,我常用的单片机是这两款:msp430f149,msp430f169.这 ...

  4. 51单片机之串口波特率配置

    51单片机之串口波特率计算 方式0的波特率配置 方式2的波特率配置 方式1和3的波特率配置 232串口模式,共有4钟方式,其中方式0.方式2的波特率是固定的.方式1.方式3的是可变波特率,这两个是用T ...

  5. 32 串口波特率_「正点原子FPGA连载」第五章串口中断实验

    1)实验平台:正点原子达芬奇FPGA开发板 2) 摘自[正点原子]达芬奇之Microblaze 开发指南 3)购买链接:https://detail.tmall.com/item.htm?id=624 ...

  6. SJXXX串口扩展芯片 4串口芯片 UART串口芯片

    SJXX串口扩展芯片 1 概述 SJ000是一款具备I2C总线/SPI总线/UART接口的四通道异步收发器件,通过模式选择使得该器件工作于以上任何一种主接口模式下.器件的四个通道UART可提供高达2M ...

  7. stm32 ucosii消息队列 串口_STM32F1的UART4串口配置

    注意是UART4,不是USART4 在stm32中UART和USART是不相同的 USART是通用同步/异步串行接收/发送器 UART是通用异步收发传输器 简单区分同步和异步就是看通信时需不需要对外提 ...

  8. 串口波特率等概念(转https://blog.csdn.net/dagefeijiqumeiguo/article/details/68921820)

    篇一 : 串口波特率等概念 1:比特率:9600bps 就是每秒中传输9600bit,也就是相当于每一秒中划分成了9600等份. 如此,那么每1bit的时间就是1/9600秒=104.16666666 ...

  9. linux 串口波特率的修改与sdma的设置

    最近这几天准备用串口实现DMA的传输数据,刚开始研究三天DMA,结果是一脸懵逼,无奈之下,只能跑去研究串口,结果发现Linux系统串口和DMA是真的难(小白,而且没人一起研究!),芯片手册对应的页数可 ...

最新文章

  1. html 重置画布坐标系,html5清空画布方法(三种)
  2. 关于BBSxp/LeadBBS的后台上传Webshell的鸡肋防范
  3. easyui combogrid分页加载默认值时无法自动跳转到相应页的解决方案
  4. 带你开发类似 Pokemon Go 的 AR 游戏
  5. Python发送邮件smtplib.SMTP各报错问题的解决方法
  6. Android-静态代理模式
  7. Whose Hall?
  8. 原生js实现京东商城楼梯效果
  9. Javascript的枚举属性
  10. Source Insight 中查看日文注释
  11. 相机成像原理与数学模型
  12. 利用ant自动从vss下载代码并编译到自动发布
  13. 苹果系统itunes连iphone连不上服务器,itunes不识别iphone,iPhone连接不上iTunes怎么解决?连接不上iTunes怎么办?...
  14. flutter 修改app名字和图标(安卓)
  15. 瞬态抑制二极管有方向吗?
  16. JAVA流的使用(复制文件效率对比)初学者
  17. java h d,Java HijrahChronology zonedDateTime(TemporalAccessor)用法及代码示例
  18. 使用node+vue.js实现SPA应用,解决了SPA应用的最大缺点SEO
  19. GetItemText
  20. 计算机组成原理英语翻译,计算机课程英文翻译

热门文章

  1. linux dr校园网端口被占用,Dr.com端口占用的解决
  2. 中如何刷新当前路由_企业装修和家庭改造中,路由器及接收器如何安放
  3. abaqus质量缩放系数取值_ABAQUS-延性损伤模型模拟金属材料断裂
  4. php 跳转到另外一个php,PHP: 其他变更 - Manual
  5. python学习day07-encode和decode
  6. PS2018学习笔记(30-35节)
  7. va_start、va_end、va_arg 实现可变长参数
  8. Linux监控命令之==sar
  9. MySQL查询表的所有列名,用逗号拼接
  10. eclipse常见小问题