0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

stm32异步串口通讯配置过程

汽车玩家 来源:记录知识点滴 作者:记录知识点滴 2020-04-16 16:56 次阅读

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

单工

stm32异步串口通讯配置过程

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

半双工

stm32异步串口通讯配置过程

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

全双工

stm32异步串口通讯配置过程

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

异步串口常见连接方式

stm32异步串口通讯配置过程

相同端口数据传输

stm32异步串口通讯配置过程

不同端口数据传输

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

| 异步通讯时序图

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

stm32异步串口通讯配置过程

1-8-1

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

stm32异步串口通讯配置过程

最后为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串口有独立的收发能力,可根据需要单独开启/关闭接收、发送单元

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2270

    文章

    10900

    浏览量

    356093
  • 串口
    +关注

    关注

    14

    文章

    1554

    浏览量

    76532
收藏 人收藏

    评论

    相关推荐

    串口通信的开发环境配置

    串口通信的开发环境配置涉及多个方面,包括选择编程语言、安装必要的库或驱动程序、配置串口参数等。以下是一个基于Python的串口通信开发环境
    的头像 发表于 11-22 09:21 264次阅读

    6轴控制程序,带串口通讯

    6轴控制程序,带串口通讯
    发表于 11-09 14:08 0次下载

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-串口通讯编程示例之串口硬件原理

    通用异步收发器(通常称为串口)是嵌入式设备中常用的通讯接口。它具有连接线少,通讯简单的特点,得以广泛使用。串口将数据通过串列
    发表于 10-23 13:41

    飞凌嵌入式ElfBoard ELF 1板卡-串口通讯编程示例之串口硬件原理

    通用异步收发器(通常称为串口)是嵌入式设备中常用的通讯接口。它具有连接线少,通讯简单的特点,得以广泛使用。串口将数据通过串列
    发表于 10-22 10:46

    stm32串口烧录怎么设置

    准备工作 确保您拥有STM32开发板和相应的硬件设备,如USB转串口模块。 安装STM32CubeMX和STM32CubeProgrammer软件,这些是ST官方提供的工具,用于
    的头像 发表于 08-22 09:33 1524次阅读

    第14章-蓝牙遥控小车 蓝牙串口通讯讲解蓝牙APP遥控小车 蓝牙串口通讯讲解

    第14章-蓝牙遥控小车 手把手做蓝牙APP遥控小车 蓝牙串口通讯讲解
    的头像 发表于 08-21 16:24 737次阅读
    第14章-蓝牙遥控小车 蓝牙<b class='flag-5'>串口</b><b class='flag-5'>通讯</b>讲解蓝牙APP遥控小车 蓝牙<b class='flag-5'>串口</b><b class='flag-5'>通讯</b>讲解

    LABVIEW串口通讯

    labview实现串口通讯
    发表于 08-19 14:37 7次下载

    EU104:一款支持1扩4的通用异步串口扩展芯片,满足绝大部分串口设备的通讯要求

    EU104:一款支持1扩4的通用异步串口扩展芯片,满足绝大部分串口设备的通讯要求 EU104是一款支持1扩4的通用异步
    的头像 发表于 08-08 10:21 390次阅读

    台达DVP系列串口驱动全面解析

    1 驱动简介 台达D VP 系列P****LC (包括ES2、SS、EX等)使用 串口 通讯,外部设备可通过此口采集与PLC进行数据交互。网关使用 台达 DVP 系列驱动, 按照下述过程操作即可实现
    的头像 发表于 07-16 16:22 488次阅读
    台达DVP系列<b class='flag-5'>串口</b>驱动全面解析

    求助,关于STM32 USB转串口与其他单片机通讯问题求解

    想实现stm32f103在usb转串口后,跟其他的单片机 通讯,可以实现吗? 如果用stm32f407也USB转串口,跟
    发表于 04-23 07:10

    深度解析STM32串口通信基本原理

    在同步通讯中,数据信号所传输的内容绝大部分是有效数据,而异步通讯中会则会包含数据帧的各种标识符,所以同步通讯效率高,但是同步通讯双方的时钟允
    发表于 04-18 09:50 1814次阅读
    深度解析<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>通信基本原理

    STM32 USB HS转串口过程中拔插数据线出现设备无法识别的问题怎么解决?

    STM32F429 USB HS虚拟串口与PC通讯过程中频繁拔插数据线偶尔导致设备无法识别,出现这种情况的时候有时重新拔插会好,有时重新拔插数据线也无济于事只能复位MCU,有人遇到过吗
    发表于 04-15 07:44

    STM32Cubemx配置USB虚拟串口,电脑无法识别怎么解决?

    STM32Cubemx配置USB虚拟串口,电脑无法识别问题?(上拉和驱动都配置好了)
    发表于 03-08 07:00

    串口通讯时的数据帧格式和通讯协议有什么区别?

    串口通讯时的数据帧格式和通讯协议是两个不同的概念,它们在串口通讯中起着不同的作用,但都是为了实现可靠的、有效的数据传输。
    的头像 发表于 01-30 09:21 2038次阅读

    stm32怎么读取串口发来的指令

    读取串口发来的指令是嵌入式系统中一项常见的任务,特别是在与外部设备进行通信时。在STM32系列微控制器中,提供了多个串口接口(USART、UART等),可以用于读取和处理串口接收到的数
    的头像 发表于 01-07 17:08 2726次阅读