2022-1-27 11:19:32
首先用到uart口肯定要操作相应的寄存器初始化对应要使用的uart。这里重点不讲这个,初始化见最底下的示例。
下面介绍收发函数封装。(一些变量可能是全局变量,请自行在函数外定义)
一、发送字符函数
函数原型:void send_char(char s)
参数说明:s是需要发送的字符数据,类型是字符类型,大小=8bit
功能:发送一个字符类型数据到uart的数据缓冲器(txrrxrn),即串口发送一个字符
源码:
void send_char(char s)
{
_txr_rxr0 =s;
while(_tidle0 == 0 );
}
二、发送字符串函数
函数原型:void send_buff(char *s)
参数说明:s是需要发送的字符数据,类型是字符串类型(或者说字符数组),大小=8bit*n(n是整数)
功能:发送一串字符类型数据到uart的数据缓冲器(txrrxrn),即串口发送一个字符串
源码:
void send_buff(char *s)
{
while(*s)
{
send_char(*s);
s++;
}
}
三、接收字符数据函数
函数原型:int re_buff(char *rbuff,char c)
参数说明:*rbuff是接收字符数据指针,指向接收的字符串;c是接收终止标志符,直到遇到该标志符停止接收(可设置为‘ ’即自动接收完所有字符)
返回值:该次接收完数据后字符串的长度值即len或未接收完字符串时(字符数组的长度+1)的值即data_count
功能:接收uart口接收到的字符数据
源码:
int re_buff(char *rbuff,char c)
{ char rdata;
while(_ridle0 == 0); //等待接收完成
rdata =_txr_rxr0;
if(rdata!=c)
{
rbuff[data_count]=rdata;
data_count++;
}
else
{
rbuff[data_count]='