GD32E230开发标准教程 课件 ch06串口通信_第1页
GD32E230开发标准教程 课件 ch06串口通信_第2页
GD32E230开发标准教程 课件 ch06串口通信_第3页
GD32E230开发标准教程 课件 ch06串口通信_第4页
GD32E230开发标准教程 课件 ch06串口通信_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

串口通信GD32E230开发标准教程第六章01实验内容基于GD32E2杏仁派开发板设计一个串口通信实验,每秒通过printf语句向计算机发送一句话(ASCII格式),如“ThisisthefirstGD32E230Project,byZhangsan”,在计算机上通过串口助手显示出来。另外,计算机上的串口助手向开发板发送1字节数据(.hex格式),开发板收到之后进行加1处理,再回发到计算机,并通过串口助手显示出来。比如,计算机通过串口助手向开发板发送0x15,开发板收到之后,进行加1处理,向计算机发送0x16。实验内容02实验原理串口通信协议串口在不同的物理层上可分为UART囗、COM口和USB囗等,还可根据不同的电平标准(如TTL、RS-232和RS-485等)来划分,下面主要介绍基于TTL电平标准的UART。通用异步串行收发器(UniversalAsynchronousReceiver/Transmitter,UART)是微控制器领域十分常用的通信设备,还有一种是通用同步/异步串行收发器(UniversalSynchronous/AsynchronousReceiver/Transmitter,USART)。实验原理二者的区别是USART既可以进行同步通信,也可以进行异步通信,而UART只能进行异步通信。简单区分同步和异步通信的方式是根据通信过程中是否使用时钟信号,在同步通信中,收发设备之间会通过一条信号线表示时钟信号,在时钟信号的驱动下同步数据,而异步通信不需要时钟信号进行数据同步。相较于USART的同步通信方式,其异步通信方式使用更为频繁。当使用USART进行异步通信时,其用法与UART没有区别,只需要两条信号线和一条共地线即可完成双向通信。本实验即使用USART的异步通信方式。下面先介绍UART通信协议及其通信原理。实验原理串口通信实验涉及的硬件主要为USB转串口模块电路,包括Type-C型USB接口(编号为USB1)、USB转串口芯片CH340G(编号为U105)和12MHz晶振等。Type-C型接口的UD1+和UD1-网络为数据传输线(使用USB通信协议),这两条线各通过一个22Ω电阻连接到CH340G芯片的UD+和UD-引脚。串口电路原理图实验原理CH340G芯片可以实现USB通信协议和标准UART串行通信协议的转换,因此,还需将CH340G芯片的一对串口连接到GD32E230C8T6芯片的串口,这样即可实现GD32E2杏仁派开发板通过Type-C型接口与计算机进行数据通信。这里将CH340G芯片的TXD引脚通过CH340_TX网络连接到GD32E230C8T6芯片的PA10引脚(USART0_RX),将CH340G芯片的RXD引脚通过CH340_RX网络连接到GD32E230C8T6芯片的PA9引脚(USART0_TX)。此外,两芯片还应共地。实验原理图6-5给出了GD32E23x系列微控制器的串口功能框图。实验原理串口部分寄存器本实验涉及的USART寄存器包括USART控制寄存器0(USART_CTL0)、USART控制寄存器1(USART_CTL1)、USART状态寄存器(USART_STAT)、USART中断标志清除寄存器(USART_INTC)、USART数据接收寄存器(USART_RDATA)、USART数据发送寄存器(USART_TDATA)和USART波特率寄存器(USART_BAUD)。下面仅介绍部分寄存器及其中的部分位。实验原理串口部分固件库函数本实验涉及的串口部分固件库函数有usart_deinit、usartbaudrate_set、usart_stop_bit_set、usart_word_length_set、usart_parity_config、usart_receive_config、usart_transmit_config、usartenable、usart_interrupt_enable、usart_interrupt_disable、usart_data_transmit、usart_datareceive、usart_flagget、usart_flag_clear、usart_interruptflag_get和usartinterrupt_flag_clear.这些函数在gd32e230usart.h文件中声明,在gd32e230usart.c文件中实现。实验原理异常和中断GD32E23x系列微控制器的内核是Cortex-M23,GD32E23x系列微控制器的异常和中断继承了Cortex-M23的异常响应系统。要理解GD32E23x系列微控制器的异常和中断,除了要知道什么是异常和中断,还要知道什么是线程模式和处理模式,以及什么是Cortex-M23的异常和中断。实验原理GD32E230xx系列微控制器的系统异常多达10个,外部中断多达28个,如何管理这么多异常和中断?ARM公司专门设计了一个功能强大的中断控制器NVIC(NestedVectoredInterruptController,嵌套向量中断控制器),控制着整个微控制器中断相关的功能。NVIC与CPU紧密耦合,是内核里面的一个外设,它包含若干系统控制寄存器。NVIC采用向量中断的机制,在中断发生时,会自动取出对应的服务例程入口地址,并直接调用,无须软件判定中断源,从而可以大大缩短中断延时。NVIC中断控制器实验原理NVIC部分寄存器ARM公司在设计NVIC时,给每个寄存器都预设了很多位,但是各微控制器厂商在设计芯片时,会对Cortex-M23内核里面的NVIC进行裁剪,把不需要的部分去掉,也就是说,GD32E230xx系列微控制器的NVIC是Cortex-M23的NVIC的一个子集。实验原理GD32E230xx系列微控制器的NVIC最常用的寄存器包括中断使能寄存器(ISER)、中断禁止寄存器(ICER)、中断挂起寄存器(ISPR)、中断挂起清除寄存器(ICPR)、中断优先级寄存器(IPR)、中断活动状态寄存器(IABR)。实验原理NVIC部分固件库函数本实验涉及的NVIC固件库函数包括nvicirq_enable、NVIC_EnableIRQ、NVIC_SetPriority和NVIC_ClearPendingIRQ。第一个函数在gd32e230misc.h文件中声明,在gd32e230misc.c文件中实现;后三个函数在corecm23.h文件中以内联函数的形式声明和实现。实验原理队列是一种先入先出(FIFO)的线性表,它只允许在表的一端插入元素,在另一端取出元素,即最先进入队列的元素最先离开。在队列中,允许插入的一端称为队尾(rear),允许取出的一端称为队头(front)。有时为了方便,将顺序队列臆造为一个环状的空间,称之为循环队列。本实验用到Queue模块,该模块有6个API函数,即InitQueue、ClearQueue、QueueEmpty、QueueLength、EnQueue和DeQueue。实验原理串口通信实验的程序架构如图6-13所示。实验原理03实验步骤与代码解析步骤1:复制并编译原始工程;步骤2:添加UARTO和Queue文件对;步骤3:完善UART0.h文件;实验步骤与代码解析步骤4:完善UART0.c文件;步骤5:完善串口通信实验应用层;步骤6:编译及下载验证。实验步骤与代码解析04本章任务③将USART1_TX(PA2)引脚通过杜邦线连接到USART1_RX(PA3)引脚(见图6-16);在本实验基础上增加以下功能④将UART0通过USB转串口模块及Type-C型USB线与计算机相连;①添加UART1模块;②在Main模块中的Proc2msTask函数中,将UART1读取的内容发送到UART0,将UART0读取的内容发送到UART1;⑤通过计算机上的串口助手发送数据,查看是否能够正常接收到发送的数据。本章任务图6-16UART0和UART1通信硬件连

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论