完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
首先用到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]=' |