拿这个中断函数为例

void USART1_IRQHandler()
{u8 rec;if(USART_GetITStatus(USART1,USART_IT_RXNE)){rec = USART_ReceiveData(USART1);USART_SendData(USART1,rec);}
}

很多人可能注意到了接收数据函数的返回类型为无符号短整型,疑惑这里为什么用了一个无符号字符类型变量rec接收。

先看看这个函数的定义


uint16_t USART_ReceiveData(USART_TypeDef* USARTx)
{/* Check the parameters */assert_param(IS_USART_ALL_PERIPH(USARTx));/* Receive Data */return (uint16_t)(USARTx->DR & (uint16_t)0x01FF);
}

其实,是因为串口设置的字长为8,所以数据寄存器中第八位为0,第0~7位为数据有效位,即共八位,所以USARTx_DR&0x01ff,高八位仍然为0,再赋值给无符号字符类型,进行截断,正好保存低八位有效数据;所以串口设置的字长为8时,可以用无符号字符类型变量来接收。

STM32串口通信中的USART_RecieveData函数分析相关推荐

  1. STM32串口通信中使用printf发送数据配置方法 开发环境 Keil

    STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 已有 12456 次阅读2011-6-29 23:29 | 在STM32串口通信程序中使用printf发送数据, ...

  2. STM32串口通信详解以及通信异常或者卡死常见问题分析

    STM32串口通信详解以及通信异常或者卡死常见问题分析 目录 STM32串口通信详解以及通信异常或者卡死常见问题分析 一.常见的异常问题 二.STM32的串口简介 1.串口的通讯方式 ①按数据传输方向 ...

  3. Arduino中Serial.print()与Serial.write()函数的区别,以及串口通信中十六进制与字符串的收发格式问题和转换过程详解

    1.串口通信中十六进制和字符数据的区别 串口收发数据时字符.十六进制.二进制格式详细区分 ASCII码查询表格 在使用串口发送数据时可以选择字符串(ASCII)发送或者十六进制(Hex)发送,通常情况 ...

  4. 【串口通信】K210与STM32串口通信、K210与OpenMV串口通信

    [串口通信]K210与STM32串口通信.K210与OpenMV串口通信 串口通信 前言 为何需要串口通信 K210如何进行串口通信 K210串口配置 K210串口发送相关定义 K210串口发送测试 ...

  5. STM32串口通信学习总结

                                                                             STM32串口通信学习总结 1.概述 1.1学习目的 ...

  6. 【嵌入式】STM32串口通信

    [嵌入式]STM32串口通信 一.串口通信协议 1.串口通信简介 2.串口通信原理 二.RS232通信协议 1.RS232协议简介 2.机械规约 3.电气规约 三.STM32的USART串口通信(查询 ...

  7. K210学习笔记(一) K210与STM32串口通信相关

    文章目录 前言 一.STM32 串口中断 接收K210板子发送的ASCII码整数 转换为 多位整形数据 二.MAIX BIT(K210)与STM32串口通讯 2.1 实现MAIX BIT与XCOM之间 ...

  8. stm32串口通信(初学者对于串口通信的理解)

    stm32串口通信(初学者对于串口通信的理解) 标签: stm32串口通信单片机 2015-01-24 10:12 987人阅读 评论(0) 收藏 举报  分类: stm32 版权声明:本文为博主原创 ...

  9. STM32——串口通信

    STM32--串口通信 宗旨:技术的学习是有限的,分享的精神是无限的. 一.异步串口通信协议 STM32 的串口非常强大,它不仅支持最基本的通用串口同步.异步通信,还具有 LIN 总线功能(局域互联网 ...

最新文章

  1. 不需要懂得编程,但却可以使用ggplot2画出论文级别的图?
  2. mysql统计不及格科目_SQL语句 统计各个学生的不及格科目数量及不及格率 ,2条语句...
  3. Django项目实战前要做的事情
  4. javaweb实现单点登录,防止重复登录,获取sessionid,对session及时销毁回收,只允许一个用户登录,结合struts2实现
  5. 【HDU - 4055】Number String(dp,思维)
  6. xftp实现本地与服务器的文件上传下载(windows)
  7. java利用递归解决汉诺塔问题
  8. python 文本颜色设置
  9. linux内核容器的打包,简年6:一个关于 Linux 容器化的脑洞
  10. 【贪玩巴斯】无线传感器网络(三)「Mac协议讲解」——2021-10-08
  11. 淘宝、美团、滴滴分别如何搭建大数据平台
  12. python 银行数据_Kmeans 银行数据聚类分析
  13. 前端常用素材网站大全
  14. 递归--谢宾斯基三角形、赛尔平斯基地毯
  15. SAP中计量单位有关的表
  16. 问责制Accountability
  17. android 双卡的铃声设置在哪里,安卓android手机铃声设置方法
  18. 北师大应用统计432专业课复习【干货!!】
  19. ​Mirth调用存储过程报错ORA-01861: 文字与格式字符串不匹配​
  20. 会声会影新版本客户端使用过程闪退原因以及解决方法

热门文章

  1. 大数据练习题mysql之求连续出勤和连续最大登陆天数
  2. 《How Tomcat Works》读书笔记(三)--Connector(连接器)
  3. word2003系统服务器,用Word?2003进行协同办公
  4. 大数据说:原来“首堵”不是北京!
  5. 南大计算机跨专业考研,GitHub - weizhang27/NJU-CS-Kaoyan: 南京大学计算机考研相关问题...
  6. 青年大学习未看人员名单查询(JAVA)
  7. 电子病历结构化发展路线图谱
  8. CentOS SVN使用
  9. 专科咋了?5年时间从三流外包到阿里P6(Android岗),他逆袭成功
  10. LeetCode-118