微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 基础例程教程 第3章USART

基础例程教程 第3章USART

时间:10-02 整理:3721RD 点击:
第三章 金龙107——USART3.1串口简介:

通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART 利用分数波特率发生器提供宽范围的波特率选择。支持同步单向通信和半双工单线通信。也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC 规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置的DMA 方式,可以实现高速数据通信。

3.2实验说明:

在本实验中,通过串口调试助手接收由金龙STM32F107发送上来的字符,并可以通过串口调试助手向STM32F107发送数据,控制相应LED灯的亮灭。

主要跳线帽:JP4和JP7都接在2-3上(boot设置),JP10,JP11和JP3插在2-3上。上位机需要安装usb转串口的驱动程序。

3.3硬件描述:

该实验使用了STM32的USART外设,在我们的开发板上集成了usb转串口,方便了笔记本使用者,直接使用串口,不需要购买另外的usb转串口线。在开发板上我们把USART2用PL2303,做成了usb转串口,接口是USB1;USART1通过MAX3232引出为标准的串口。

3.4程序说明:

我们先来回顾一下串口的通信协议,要配置串口通信,有字长,波特率,奇偶校验位和停止位这些参数需要配置。为了能方便的对这些参数进行更改,这就需要一个串口初始化的结构体,当然,ST的库函数里已经帮我们写好,只需调用即可。

在该程序中主要是中断,USART的设置,printf的调用,以及USART1中断程序的编写。

使用到USART1的接收中断,就要对其优先级和中断通道等配置,所以要对其NVIC进行配置。如果对中断优先级和中断分组的配置还不是很清楚,我们在上一章有详细的讲解。


USART的配置主要是对应端口引脚的配置,以及波特率,数据位,和校验位等,对应引脚要选择复用功能,还要端口复用的时钟也要打开,最后还要启动USART外设,同时,因为本例中使用到USART1的接收中断,所以还要使能相应的中断。




Printf的调用,要在程序中重新编写int fputc(int ch, FILE *f)函数,然后我们就可以就直接使用printf函数的功能。


USART中断函数的编写,进入中断之后,首先要判断中断源,然后清除中断标志位。在中断函数里面判断接收到的字符,然后点亮对应的LED灯。


3.5实验现象:

        连接usb线到usb-1端口,连接串口线,插好跳线帽,下载程序,打开串口调试程序,分别找到对应的端口,如果选择的是USART1对应的端口,则会显示“USART1测试正常!”和“请输入a~c的任意字母控制LED的亮灭”然后通过串口调试助手发送相应的字符,则对应的LED灯亮,发送字符a,LD3亮,字符b,LD4亮,字符c,LD5亮;如果选择的是USART2对应的端口,则会显示“USART2 (USB转串口) 测试正常!”。


还有继续下继续啊!

为什么这个没有程序下载?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top