10、STM32的串口(UART)及串口通信原理(内附代码)

一、通信接口介绍

    1、处理器与外部设备通信的两种方式:      

        并行通信

    -            传输原理:数据各个位同时传输。

                -优点:速度快

                -缺点:占用引脚资源多

        串行通信

   -            传输原理:数据按位顺序传输(一位一位传输)。

                -优点:占用引脚资源少

                -缺点:速度相对较慢

    2、串行通信三种传送方式:

        单工:

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

        半双工:

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

        全双工:

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

    3、串行通信的通信方式及举例

        同步通信:带时钟同步信号传输。         -SPI,IIC通信接口

        异步通信:不带时钟同步信号。            -UART(通用异步收发器),单总线


二、什么是串口:

    串口是我们的大多数微控制单元(MCU)都具有的基本的外部接口,一般串口最基本的功能就是调试,又能做数据通信的接口(数据量要小一些)。

    数据从A到B只能通过1根线,数据就像是羊肉块一样被串在线上

        UART:通用异步收发器

        USART:通用同步异步收发器


三、串口电平标准及引脚连接方法:

    1、电平标准

     TTL是常见的模块的通讯电平标准:串口wifi、串口蓝牙(4针接口:VCC、GND、TXD、RXD)

     232一般是数据通讯接口:台式电脑的主机背后的九针接口

    2、连接方法

        RXD:数据输入引脚。数据接受。

        TXD:数据发送引脚。数据发送。

             


四、STM32串口通信过程

数据接收过程:

数据发送过程:


五、STM32串口异步通信需要定义的参数

        ①起始位

        ②数据位(8位或者9位)   9位是带奇偶校验位

        ③奇偶校验位(第9位)    

                奇检验就是保证8位数据位中1的个数为基数个,如果1是基数个则检验位就为0,反之为1;

                偶检验就是保证8位数据位中1的个数为偶数个,如果1是偶数个则检验位就为0,反之为1;

        ④停止位(1,15,2位)

        ⑤波特率设置


六、UART配置过程  

  //1、串口时钟和GPIO时钟使能

        ①串口时钟使能: RCC_APBxPeriphClockCmd();

        ②GPIO时钟使能:RCC_AHB1PeriphClockCmd();

//2、设置引脚复用器映射:

        GPIO_PinAFConfig();

//3、串口参数初始化(GPIO配置)(五大参数)

        GPIO_Init();//初始化

//4、串口参数初始化(六大参数)

        USART_Init(); //初始化串口

//5.使能串口

        USART_Cmd();

//6.开启中断(如果需要开启中断才需要这个步骤)

//  设置中断进入的条件:接收数据缓冲区有数据的时候就会进入中断

        USART_ITConfig(USART1, USART_IT_RXNE,ENABLE);

//7.配置NVIC中断(四大参数)

        NVIC_Init(&NVIC_InitStructure);

//8、编写中断处理函数:USARTx_IRQHandler();

 //串口数据收发:

    void USART_SendData();//发送数据到串口,DR

    uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据

//串口传输状态获取:

    FlagStatusUSART_GetFlagStatus();

    void USART_ClearITPendingBit();

  • 46
    点赞
  • 295
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
引用中的代码展示了一个基于STM32UART串口通信的示例程序。在这个示例中,首先通过引入相关头文件,包括"stm32f10x.h"和"bsp_usart.h"来实现对USART的初始化配置。然后,在主函数main中,通过调用USART_Config函数来进行USART的初始化配置,包括设置波特率、数据位数、停止位数等参数。接着使用Usart_SendString函数向串口发送一串字符串,并通过printf函数向终端输出一段欢迎信息。最后,通过一个无限循环来保持程序的运行。 引用和引用提供了更具体的关于初始化和配置串口的过程和代码说明。在这些引用中,首先要进行相关的时钟使能和GPIO配置,然后设置引脚的复用模式,接着进行串口参数的初始化配置,包括波特率、数据位数、停止位数等。如果需要开启中断,则需要进行中断配置和中断处理函数的编写。最后,使能串口以开始通信。 综上所述,如果您需要实现STM32UART串口通信,可以参考以上提供的代码和过程。请根据自己的具体需求进行相应的配置和修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [STM32——USART接发通信实验代码解析(适合野火stm32f103ZE)](https://blog.csdn.net/m0_57396609/article/details/120387284)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [(十三)STM32——串口通信UART)](https://blog.csdn.net/weixin_66578482/article/details/126270118)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值