《汽车计算机基础》 课件 11- 利用UART实现上位机和下位机的通信_第1页
《汽车计算机基础》 课件 11- 利用UART实现上位机和下位机的通信_第2页
《汽车计算机基础》 课件 11- 利用UART实现上位机和下位机的通信_第3页
《汽车计算机基础》 课件 11- 利用UART实现上位机和下位机的通信_第4页
《汽车计算机基础》 课件 11- 利用UART实现上位机和下位机的通信_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

第7单元:闪灯的设计与实现第8单元:开关状态指示灯的设计与实现第9单元:利用定时中断实现频闪灯第10单元:利用PWM实现小灯亮度控制第11单元:利用UART实现上位机和下位机的通信第12单元:利用ADC设计简易数字电压表汽车嵌入式技术基础篇

第11单元利用UART实现上位机和下位机的通信

为了实现上位机PC和下位机MCU之间的通信,可采用UART、USB、Ethernet等多种通信方式,其中UART是最简单的通信方式,也是学习其他通信方式的基础。

单元学习任务和目标:

(1)理解UART的通用知识,包括UART硬件、UART通信的数据格式和数据通信的波特率。(2)掌握UART底层驱动构件头文件的使用方法。(3)掌握PC和MCU的串口通信与调试方法,重点掌握UART应用层程序设计方法,包括主程序设计和UART接收中断服务程序设计。(4)掌握通过UART实现利用格式化输出函数(printf)向PC输出数据的方法。【单元导读】任务11.1理解UART的通用知识

UART(UniversalAsynchronousReceiver/Transmitter,通用异步收发器)可实现异步串行通信功能。有时还将UART称为SCI(SerialCommunicationInterface,串行通信接口),简称串口。1、UART硬件

MCU的UART通信一般只需3根线:发送线TxD、接收线RxD和地线GND。

MCU可通过TTL-USB转换器连接到PC的USB接口,在PC上安装相应的驱动软件,就可实现MCU与PC之间的串口通信。2、UART通信的数据帧格式

UART通信的特点:数据以字节为单位,按位的顺序(如最低位优先)从一条传输线上发送出去。

(1)发送1位起始位——逻辑“0”,用于通知接收方通信同步。

(2)依次发送8位数据D0~D7(低位在前、高位在后)。

(3)发送1位奇偶校验位(可选),便于接收方检测数据发送是否正确。

(4)发送1~2位停止位——逻辑“1”,用于通知接收方该帧数据已发送完成。

若发送方无数据发送,则通信线路上保持空闲状态——逻辑“1”。若发送方发送下一个UART数据帧,则要重新发送起始位,然后发送一字节的新数据。任务11.1理解UART的通用知识3、数据通信的波特率

波特率:每秒钟传输二进制数码的位数,单位是bit/s。波特率越高,数据传输的速度就越快。只有通信双方的波特率相同时才可以正常通信。

串口通信常用的波特率:1200、1800、2400、4800、9600、19200、38400、57600、115200等(bit/s)。任务11.2掌握UART底层驱动构件的使用方法1、KEA128的UART模块

KEA128芯片中共有3个UART模块:UART0、UART1和UART2。每个UART模块的发送数据引脚为UART_TX,接收数据引脚为UART_RX。可以配置为UART模块的引脚见表11-1,具体使用的引脚,可参照uart.h头文件中的相关宏定义。任务11.2掌握UART底层驱动构件的使用方法2、KEA128的UART底层驱动构件及使用方法

UART具有初始化、发送和接收三种基本操作。其中,UART发送是主动任务,不必采用中断方式;而UART接收是被动任务,为了确保及时接收到对方发送来的每帧数据,一般采用中断方式。

UART底层驱动构件由uart.h头文件和uart.c源文件组成,若要使用UART底层驱动构件,只需将这两个文件添加到所建工程的04_Driver(MCU底层驱动构件)文件夹中,即可实现对UART的操作。见工程文件:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx

其中,uart.h头文件主要包括相关头文件的包含、一些必要的宏定义、对外接口函数的声明,而uart.c源文件则是对外接口函数的具体实现,初学者不必深究。

用户只要熟悉uart.h头文件的内容,即可使用UART底层驱动构件进行编程。任务11.3掌握PC与MCU的串口通信与调试方法11.3.1UART通信的应用层程序设计

在嵌入式软件最小系统框架下,设计07_Source(应用层软件构件)的文件,以实现:上位机PC

下位机MCU之间的串口通信。1)工程总头文件includes.h:包含04、05、06文件夹中的头文件2)主程序源文件main.c:

定义字符数组(存放待发送的字符型数据);

初始化;使能UART接收中断;

在主循环中,MCU通过UART使用发送函数向PC发送数据在工程文件中分析代码并编程:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx3)中断服务程序源文件isr.c:在UART接收中断服务程序中,MCU使用UART接收函数

接收PC发来的数据,并向PC回送接收到的字符任务11.3掌握PC与MCU的串口通信与调试方法11.3.2UART通信的测试方法

(1)将USB-TTL转换器TTL端的RX、TX、GND端子分别与MCU的TX、RX、GND引脚(参照uart.h中的引脚宏定义)相连接,将USB-TTL转换器的USB端与PC的USB接口连接;

(2)打开PC串口调试软件,打开串口,并且设置与MCU的UART相同的波特率;

(3)运行MCU程序,通过PC串口调试窗口查看MCU发送给PC的信息;

(4)在PC串口调试窗口中写入字符或字符串并发送给MCU,在串口调试窗口中查看是否有MCU回送到PC的信息;

(5)调试结束后,先在PC串口调试软件中关闭串口,然后将USB-TTL转换器从PC的USB接口断开。任务11.3掌握PC与MCU的串口通信与调试方法11.3.3使用printf函数输出数据1、通过UART使用printf函数的方法

使用printf函数时,需要将printf软件构件对应的printf.h头文件和printf.c源文件添加到所建工程的06_Soft(通用软件构件)文件夹中。在printf.h头文件中,添加了以下两条预处理命令:

任务6.3学习PC与MCU的串口通信与调试方法2、通过UART使用printf函数输出数据的应用层程序设计【同步练习11】

通过PC串口调试窗口向MCU发送不同的字符,控制小灯的状态。1)工程总头文件includes.h:包含04、05、06文件夹中的头文件2)主程序源文件main.c:

定义局部变量(存放待发送的数据);

温馨提示

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

评论

0/150

提交评论