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
    +关注

    关注

    2270

    文章

    10900

    浏览量

    355889
  • 中断
    +关注

    关注

    5

    文章

    898

    浏览量

    41490
  • 串口通信
    +关注

    关注

    34

    文章

    1624

    浏览量

    55522
收藏 人收藏

    评论

    相关推荐

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

    STM32串口发送数据接收数据方式总结
    的头像 发表于 09-19 09:14 7643次阅读
    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

    STM32的串口接收数据方式

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

    串口通信的两种方式

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

    SQL语言的两种使用方式

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

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

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

    逆变器的两种电流型控制方式

    逆变器的两种电流型控制方式 摘要:研究分析了逆变器的两种双环瞬时反馈控制方式——电流型准PWM控制方式和三态DPM
    发表于 07-10 11:21 4003次阅读
    逆变器的<b class='flag-5'>两种</b>电流型控制<b class='flag-5'>方式</b>

    【科普】常见的两种串口通信

    在串行通信中,数据通常是在个站之间传送,按照数据在通信线路上的传送方向可分为3基本的传送方式:单工、半双工和全双工。单工通信使用一根导线
    发表于 11-16 13:50 7375次阅读
    【科普】常见的<b class='flag-5'>两种</b><b class='flag-5'>串口</b>通信

    labview串口接收数据_labview串口被动接收数据

    字节的数据。最后,用一个状态机来实现相邻个字符串的判断。如果串口在相邻个字符串之间接收时间大于50ms,则判断为
    发表于 01-15 15:49 6.7w次阅读
    labview<b class='flag-5'>串口</b><b class='flag-5'>接收</b><b class='flag-5'>数据</b>_labview<b class='flag-5'>串口</b>被动<b class='flag-5'>接收</b><b class='flag-5'>数据</b>

    Pytroch中支持的两种迁移学习方式

    上述两种迁移方式,分别适合大量数据跟少量数据,前一方式计算跟训练时间会比第二
    的头像 发表于 10-09 15:16 1043次阅读

    sqlite数据插入的两种方式比较

    sqlite工具包提供两种数据插入方式,全部使用Execute SQL(Ploy)函数
    的头像 发表于 11-13 09:33 1319次阅读