打印
[STM32F1]

STM32F107VC金龙开发板 第三章USART

[复制链接]
688|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 szopenmcu 于 2015-4-11 13:51 编辑

金龙107——USART
3.1串口简介:
通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART 利用分数波特率发生器提供宽范围的波特率选择。支持同步单向通信和半双工单线通信。也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC 规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置的DMA 方式,可以实现高速数据通信。
3.2实验说明
在本实验中,通过串口调试助手接收由金龙STM32F107发送上来的字符,并可以通过串口调试助手向STM32F107发送数据,控制相应LED灯的亮灭。
主要跳线帽:JP4JP7都接在2-3(boot设置)JP10JP11JP3插在2-3上。上位机需要安装usb转串口的驱动程序。
3.3硬件描述:
该实验使用了STM32USART外设,在我们的开发板上集成了usb转串口,方便了笔记本使用者,直接使用串口,不需要购买另外的usb转串口线。在开发板上我们把USART2PL2303,做成了usb转串口,接口是USB1USART1通过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灯亮,发送字符aLD3亮,字符bLD4亮,字符cLD5亮;如果选择的是USART2对应的端口,则会显示“USART2 (USB转串口) 测试正常!”。


沙发
mmuuss586| | 2015-4-11 19:52 | 只看该作者

这些不是很难;

使用特权

评论回复
板凳
搞IT的| | 2015-4-12 11:26 | 只看该作者
额 这个确实是基础。。挺重要的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:专业生产销售STM32开发板,仿真器,http://openmcu.taobao.com/

71

主题

283

帖子

11

粉丝