UART模块学习记录

  • 代码概述
  • 代码注释

代码概述

  • 功能简述: 将串口2接收到的数据,以0x0D,0x0A结尾,返回给PC
  • 硬件说明: UART2引脚为P43、P44,接到TTL-USB芯片,插入USB线与PC通信

代码注释

通用全双工/半双工收发器(USARTx)模块包括波特率发生器(BRG)数据发送数据接收这三部分,每个部分都有相应的寄存器设置,主要包括波特率控制寄存器 BRCTLx,发送状态和控制寄存器 TSCTLx 和接收状态和控制寄存器 RSCTLx。

在波特率发生器这部分,通过设置 SYNCx、 HBRGx 和 BxRG16 位来进行选择设置{EUBRGHx: EUBRGLx}寄存器的值来配置波特率。

在数据发送部分,包括全双工异步发送和半双工同步发送,通过发送状态和控制寄存器TSCTLx 来控制实现相应的功能。

在数据接收部分,包括全双工异步接收和半双工同步接收,通过接收状态和控制寄存器RSCTLx 来控制实现相应的功能。

串口初始化函数:

void UART2_Init(void)
{APFCTL12=0x03;    //特殊引脚功能复用//TX2、RX2引脚ANS43=0;ANS44=0;/***Usart相关寄存器初始化****///USARTx波特率控制寄存器BRCTLx P274//自动波特率定时器没有溢出  接收空闲  传送非反相数据  使用8位计数器  不考虑唤醒使能BRCTL2=0x40|USART_SourceClk_HFCLK;  //{EUBRGHx: EUBRGLx}寄存器的值来配置波特率// 波特率公式=SCLK/(m*y+1),其中SCLK系统时钟,如这里8M,m为倍频数,见手册,y为8位或16位波特率计数值// SYNC=0(全双工异步模式),BRG16=0(使用8位波特率发生器),HBRG=0(低速),Baud=8000000/(64*(12+1))=9615EUBRGH2=0x00;   EUBRGL2=0x19;  //发送状态和控制寄存器 TSCTLxTSCTL2=0x22;    // 8位 发送,使能发送,全双工异步模式SYNC=0,低速模式HBRG=0,发送移位空,不发送同步间隔符//接收状态和控制寄存器 RSCTLxRSCTL2=0x90;     // 串口使能(配置引脚为串行口引脚),8位接收,接收使能,无帧错误,溢出错误,不考虑地址识别和第9位TX2IF=0;TX2IE=0;RC2IF=0;RC2IE=1;//接收中断
}

中断函数:

void int_fun0() __interrupt (0)
{volatile uint8 revBuf; // 避免优化下未读取RXSDR2if(RC2IE && RC2IF){if(FRER2){          //FRERx: 帧错误位           1 = 帧错误(可通过读 RXSDRx寄存器刷新该位,并接收下一个有效字节)   0 = 无帧错误revBuf=  RXSDR2; //要清除 RCxIF中断,需要读取RXSDRx中的值;通过读 RXSDRx寄存器刷新FRERx位,并接收下一个有效字节}else if(OVFER2){ //溢出错误位             1 = 溢出错误(可通过清 0 CRXENx 位来清 0 该位)           0 = 无溢出错误CRXEN2=0;        //CRXENx: 连续接收使能位       1 = 使能接收器      0 = 禁止接收器revBuf=  RXSDR2; //读清零RC2IFCRXEN2=1;        //接收使能}else{UART2_BUF[Rev_count]=RXSDR2;if(UART2_BUF[Rev_count] == 0x0D){Rev_StopFlag=1;}else{if(Rev_StopFlag){if(UART2_BUF[Rev_count] == 0x0A)Rev_Flag=1;else Rev_StopFlag=0;}else{Rev_StopFlag=0;}}Rev_count++;}}
}

main函数:

UART2_Init();//串口初始化//总中断开启
AIE=1;
PUIE=1;while(1)
{if(Rev_Flag == 1){Rev_Flag=0;for(i=0;i<Rev_count;i++){UART2_SendBuf(UART2_BUF[i]);}Rev_count=0;}
}

通用全双工异步串口实验demo相关推荐

  1. 13.基础实验(2)异步串口收发的实现

    异步串口收发的实现 一.实验内容 实现串口接收来自串口调试助手发送的数据,然后直接通过自己实现的串口程序将数据发送出去 二.系统框图 三.设计分析 从串口接收开始,这个比较容易实现.参考链接串口通信协 ...

  2. STM32之USART-串口通信(含串口实验详细解析)

    STM32之串口通信 - USART(含串口实验详细解析) 开发环境:Window 10 开发工具:Keil uVision5 MDK 硬件:STM32F103 资料参考: [正点原子]STM32F1 ...

  3. UART 和 USART 的区别 == 通用异步收发传输器 通用同步/异步串行接收/发送器

    UART 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分.它将要传输的资料在串 ...

  4. STM32F103系列实战之通用同步异步收发器(USART)

    通用同步/异步收发器(USART) STM32F103xC. STM32F103xD和STM32F103xE增强型系列产品中,内置了3个通用同步/异步收发器(USART1. USART2和USART3 ...

  5. 8051异步串口的收发原理

    8051异步串口的收发原理 <8051异步串口的收发原理> 来自:刘建文 | 学术半·IT歌·文 作者:刘建文 关键字:8051 数字电子 数据通信 永久链接地址:http://artte ...

  6. 17、STM8S通用同步异步收发器(UART)

    文章目录 1.概述 2.串口主要特点 3.UART功能描述 4.UART主要特点 5.异步串行通信的字符格式 6.串行通信的传送速率 1.概述   STM8S 微控制器家族的通用同步异步收发器(UAR ...

  7. STM32F207串口实验记录和接口

    处理器与外部设备通信的两种方式: 并行通信 传输原理:数据的各个位同时传输 优点:速度快 缺点:占用引脚资源多 串行通信 传输原理:数据按位顺序传输 优点:占用引脚资源少 缺点:速度相对较慢 串行通信 ...

  8. imx6 配置串口波特率_stm32异步串口(uart)通讯基本操作

    | 串口是一种全双工通讯方式 单工 数据传输只支持数据在一个方向上传输 半双工 允许数据在两个方向上传输,在同一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信 全双工 允许数据同时 ...

  9. 实现USB转两个异步串口,USB总线的转接芯片

    简述 CH9103是一个USB总线的转接芯片,实现USB转两个异步串口. 每个串口都支持高速全双工,支持奇偶校验,提供部分MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备或者MCU直 ...

最新文章

  1. web与APP之间的交互---WebViewJavascriptBridge
  2. 计算机文档里的东西可以删吗,电脑c盘哪些文件可以删除
  3. OenLDAP 配置记录
  4. 博客No.1活动暂停公告
  5. 【QGIS入门实战精品教程】3.1:QGIS如何连接SQL Server数据库?
  6. vue3 composition-api useRoute useRouter 别混淆
  7. STC89C52点亮LED
  8. 萌新的Python练习菜鸟100例(十)暂停一秒输出,并格式化输出当前时间
  9. phpPgAdmin-5.1安装配置
  10. python中重要的基础概念
  11. 自动生成光纤测试资料的软件,光缆测试模板生成工具官方版
  12. 虚拟地址与物理地址的转换
  13. WDK安装调试以及注意事项
  14. openmv和stm32串口通信完成二维码识别
  15. 织梦php调用模型,织梦dede新建模型中自定义联动类别调用
  16. 为什么需要工作流调度系统?
  17. 模拟器链接appium
  18. python代码运行速度有点慢 ? 教你使用多线程速度飞升
  19. 官网电子安全证书端口即将到期!新型诈骗短信!
  20. 2020年薪酬排行榜为何程序员遥遥领先?

热门文章

  1. JavaScript 格式化数字(格式化为N位补0)
  2. 怎么将图片旋转45度?
  3. 高情商的女人都是怎么吃定男人的
  4. html css js 完整案例,html+css+js实例
  5. Tampermonkey(油泼狓)插件的安装及使用
  6. matlab 虚部怎么表示,matlab – 如何绘制与其虚部相关的复杂系统
  7. Android7.1升级傻瓜教程(以Nexus5为例)
  8. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java租房管理信息系统k578i
  9. spark大数据计算引擎原理深剖(优缺点)-spark简介
  10. 第7章 生产产出的决策分析