蓝桥杯单片机竞赛——串口通信程序设计

目录

一、竞赛板串口通信相关资料解析

2、单片机串口接收数据解析

3、返回指令格式

二、程序设计

1、串口1初始化程序

2、串口1中断服务函数设计

3、接收信息分析处理函数

(1)分析指令函数结构

(2)查询数据指令程序

(3)查询参数指令程序

(4)查询参数指令程序

程序包链接


一、竞赛板串口通信相关资料解析

串口通信在蓝桥杯单片机竞赛中出现的次数不多,串口通信对竞赛学生来说也相对难一些,好在竞赛中考点不是很多,由于竞赛板硬件已经固定,只有串口1可用于考核,且串口1也作为程序下载的端口,在竞赛中也只能和上位机PC进行通信演示。

本例以第十届全国决赛中通信部分为例。

1、指令解析

查询数据指令:”ST\r\n”

查询参数指令: ”PARA\r\n”

通信中的指令格式是采用字符形式,在设置串口调试助手也必须采用字符形式发送和接收,其中的 “\r\n”是回车换行的意思,在窗口中并不显示,因此在输入发送指令时必须加回车,然后再按“发送数据”按钮,如下图中的指令就是查询数据指令(ST+回车)。

蓝桥杯单片机竞赛——串口通信程序设计_第1张图片

2、单片机串口接收数据解析

单片机收到的信息都是8位二进制信息,但通信过程要求以字符形式通信,即ASC-II码形式。ASC-II码也是8位二进制编码,在C语言编程中,给字符加单引号就是其ASC-II编码,如A:‘A’。

对0~9数字的ASC-II码是在0~9数值基础上加 30h(或0x30)。

“\r\n”对应的十六进制信息是0dh、0ah(0x0d、0x0a)。

3、返回指令格式

发送:”ST\r\n”      返回:$20,24.32\r\n

发送:”PARA\r\n”   返回:#35,30\r\n

发送:其它\r\n     返回:ERROR\r\n

返回信息包含数据和字符,数据有整数和浮点数,浮点数也定义成整数,在发送时人为添加小数点的ASC-II码。

二、程序设计

1、串口1初始化程序

用STC-ISP的“串口波特率计算器”功能产生初始化程序,注意系统频率要设置为11.0592MHz,用定时器T18位自动重装模式产生波特率,8位数据,波特率按赛题要求设置即可,本例设为9600。程序如下:

void UartInit(void)        //9600

你可能感兴趣的:(蓝桥杯,单片机,嵌入式硬件)