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

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

3天内不再提示

串口接收数据的两种方式是什么

麦辣鸡腿堡 来源:CSDN博客 作者:藕粉- 2023-11-10 16:20 次阅读

上方是发送数据的例子,那么串口接收又该如何配置,又要在串口发送的例子上做哪些更改呢?

这里我们可以通过查询或者中断的方式来进行接收数据的两种方式。

  • 查询方式就是通过不断的查询RXNE标志位,通过判断RXNE位的状态来确定数据是否接收。
  • 中断方式就是通过配置接收输出控制通道,配置NVIC,在中断服务子函数里进行数据的接收。

1. 需要更改的地方

既然我们要实现串口的接收,那么就要配置串口RX引脚,在串口模式中添加USART_Mode_RX模式。

  • 初始化RX引脚
//RX端
  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;  //上拉输入
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;  //50MhZ
    GPIO_Init(GPIOA,&GPIO_InitStructure);
  • 添加串口模式
USART_InitStruct.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;         //TX 发送模式  RX 接收模式

2. 查询RXNE标志位

这里我们还是来看一看RXNE标志位的描述

图片

上图描述,为0时数据没有收到,为1时收到了数据,数据可以从RDR里读出

所以在主程序里不断读取RXNE标志位,如果为1,表示数据可以读出

uint8_t RX_Data;
int main()
{ 
    Serial_Init();
    Serial_SendByte(0x16);
    while(1)
    {
        if(USART_GetFlagStatus(USART2,USART_FLAG_RXNE)==SET)   //0 循环等待 1 可以接收数据
        {
            RX_Data=USART_ReceiveData(USART2);           
      Serial_SendByte(RX_Data);
        }
    }
}

下图为程序现象:pc向单片机发送数据0x15,单片机接收数据0x15,并且把接收到的数据作为数据发送到pc,在pc上显示0x15。

图片

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

    关注

    2240

    文章

    10674

    浏览量

    348790
  • 中断
    +关注

    关注

    5

    文章

    884

    浏览量

    41026
  • 串口通信
    +关注

    关注

    32

    文章

    1577

    浏览量

    54865
收藏 人收藏

    评论

    相关推荐

    STM32串口发送数据接收数据方式总结

    STM32串口发送数据接收数据方式总结
    的头像 发表于 09-19 09:14 5697次阅读
    STM32<b class='flag-5'>串口</b>发送<b class='flag-5'>数据</b>和<b class='flag-5'>接收</b><b class='flag-5'>数据</b><b class='flag-5'>方式</b>总结

    labview串口接收数据方式

    了串行通信中断接收数据处理的技巧。作者已经把该技术成功运用到了部队和工业控制的实际项目中。MSCOMM文件夹中为使用微软MSCOMM串口控件方式,利用事件回调注册是现在事件
    发表于 11-08 11:08

    labview与51串口通信的两种方式

    Labview串口通信要学会两种方法,一是利用visa(虚拟仪器软件构架),另一是调用activeX控件。第一方法(VISA)程序如图
    发表于 09-06 16:03

    两种采样方式

    两种采样方式.....................................
    发表于 08-08 15:04

    常见的两种串口通信

    常见的两种串口通信在串行通信中,数据通常是在个站之间传送,按照数据在通信线路上的传送方向可分为3
    发表于 06-10 16:20

    51单片机与上位机通讯的两种串口通讯方式

    51系列单片机与上位机通讯有两种串口通讯方式方式一.使用自带串口通讯模块,使用RxD/TxD口,用内置定时器产生波特率,通过中断
    发表于 07-19 08:22

    linux配置mysql的两种方式

    两种方式:a、$ find / -name mysql–print 查看是否有mysql文件夹b、$ netstat -a –n 查看是否打开3306端口
    发表于 07-26 07:46

    编译环境的两种搭建方式

    编译环境的两种搭建方式putty工具的使用winscp工具的使用
    发表于 12-22 08:00

    STM32的串口接收数据方式

    开发平台:Keil 5库函数版本:V3.5芯片:STM32F407VET6 1 STM32的串口接收数据方式STM32的串口
    发表于 08-16 08:02

    串口通信的两种方式

    串口通信由两种方式,第一就是用微机原理课上学过的TX和RX个接口进行通信。不过根据去年的经验,这个板子直接用TX和RX
    发表于 08-24 06:59

    串口通信的作用及通信方式

    串口通信基本通信方式两种:并行通信和串行通信。串行通信:传送数据的各位按顺序一位一位发送或者接收并行通信:传送
    发表于 11-18 08:36

    SQL语言的两种使用方式

    SQL语言的两种使用方式在终端交互方式下使用,称为交互式SQL嵌入在高级语言的程序中使用,称为嵌入式SQL―高级语言如C、Java等,称为宿主语言嵌入式SQL的实现方式源程序(用主语言
    发表于 12-20 06:51

    vnc和xrdp两种远程连接的方式

    [zju嵌入式]树莓派之远程桌面 之前篇介绍了通过串口和ssh登陆到树莓派的方法,这两种方式的有点在于连接方面,响应速度快,但是也有不够直观的缺点,没办法看到图形界面.在这篇博文中,
    发表于 12-24 07:54

    如何使用DMA的方式进行串口的发送与接收

    与DMA中断两种方式实现功能。一、实验环境1、软件环境:macOS 11.4kendryte IDEKendryte StandaloneSDK2、硬件环境SIPEED M1 AI MODULE二、功能构思实现简单的串口输出字符
    发表于 01-20 08:10

    串口如何接收数据 STM32串口接收数据

    如果采用查询接收方式接受串口数据,就会造成接收不及时,还没接收数据,下一个
    的头像 发表于 07-21 17:07 4924次阅读
    <b class='flag-5'>串口</b>如何<b class='flag-5'>接收</b><b class='flag-5'>数据</b> STM32<b class='flag-5'>串口</b><b class='flag-5'>接收</b><b class='flag-5'>数据</b>