Hi!请登陆

合泰杯——合泰单片机工程5之串口通信

2021-3-8 29 3/8

一、usat例程分析?

二、编写程序

总结

前言

这一章更新的是关于合泰单片机串口通信的内容,用的是HT66F2390的芯片和板子,使用e-link下载程序来调试。程序是借助合泰官方usat的例程来更改调试。程序实现的效果预计为定时1秒向串口调试助手发送“广东工业大学MFT微流控团队合泰单片机HT66F2390串口通信实验调试”,串口调试助手发送字符相应,单片机并返回相应的字符给调试助手。再加上一个发送0x01点亮LED1.

提示:以下是本篇文章正文内容,下面案例可供参考

一、usat例程分析?

我们先来看一下程序,前面没什么好说,就是定义和声明数据计数、数据的长度等,重点看下面条件编译的那部分,也是我标注的那一部分。

这里使用了条件编译,功能如下

#if 常量表达式 程序段1

#else程序段2

#endif

它的功能是,如常量表达式的值为真(非0),则对程序段1 进行编译,否则对程序段2进行编译。因此可以使程序在不同条件下,完成不同的功能。

例程中的BRGH_0在uart.h中有进行了宏定义为1了。所以这里编译的是程序_u0cr2=0b11101100;

再来看U0CR2寄存器,它的主要功能是控制发送器、接收器以及各种 UART0中断源的使能或除能。这里就仔细解释了,感兴趣的可以在技术手册上看看他们选择的相应功能,以便让自己有一个更深的理解。

发送一个字节的函数,如果想发送一个数组可以定义一个字符串型数组,然后用for循环发送即可。

voidUART_Send_Byte(unsignedchar Data_byte){ _ur0e=0;while(_txif0==0); _txr_rxr0=Data_byte; _ur0e=1;}

接收数据函数

二、编写程序

主函数

#include"HT66F2390.h"#include"delay.h"#include"uart.h"#include"LED.h"#include"string.h"//调用strlen函数要引入字符串的头文件voidmain{int t=0,i=0;//用于计时char
date[]="广东工业大学MFT团队合泰单片机串口实验";LED_Init;//LED初始化UART_SET;//串口函数初始化while(1){GCC_CLRWDT;//清除看门狗delay_ms(10); t++;if(RECEIVE_Finish_Flag==1){if(Rcv_Data[0]==0x01){ LED1 =!LED1;}for(i=0;i

总结

串口通信的这一篇暂时到这里,因为还没有下载进去调试,所以可能会有出错的地方,之后会及时更改。下一篇是定时器部分。

工程文件等下载进去调试好之后再上传到这里。

相关推荐