#include "regs.h"
#include <stdarg.h>
void uart_init(void)
{
GPACON &= ~0xff;
GPACON |= 0x22;
ULCON0 = 0x3;
UCON0 = (1 << 2)|(1 << 0);
UFCON0 = 0;
UMCON0 = 0;
UBRDIV0 = 34;
UDIVSLOT0 = 0xdfdd;
}
void uart_putchar(char c)
{
UTXH0 = c;
while(!(UTRSTAT0 & (1 << 2)));
}
char uart_getchar(void)
{
while(!(UTRSTAT0 & (1 << 0)));
return URXH0;
}
void uart_put(char *s) //"hello\n"
{
while(*s != '\0'){
uart_putchar(*s);
if(*s == '\n'){
uart_putchar('\r');
}
s++;
}
}
void uart_puts(char *s) //"hello"
{
uart_put(s);
uart_putchar('\n');
uart_putchar('\r');
}
char recv_buffer[1024];
char *uart_gets(void)
{
int i = 0;
char c;
do{
c = uart_getchar();
uart_putchar(c);
if(c == '\r'){
uart_putchar('\n');
}
recv_buffer[i] = c;
i++;
}while((c != '\r') && (c != '\n'));
recv_buffer[i - 1] = '\0';
return recv_buffer;
}
char tmp_buffer[16];
char *itoa(unsigned int num)// 10 "10"
{
int i = 0;
if(num < 10){
tmp_buffer[0] = num + '0';
tmp_buffer[1] = '\0';
} else {
itoa(num / 10);
while(tmp_buffer[i] != '\0')
i++;
tmp_buffer[i] = num % 10 + '0';
tmp_buffer[i + 1] = '\0';
}
return tmp_buffer;
}
char *xtoa(unsigned int num)// 10 "A"
{
int i = 0;
if(num < 10){
tmp_buffer[0] = num + '0';
tmp_buffer[1] = '\0';
} else if((num >= 10) && (num < 16)){
tmp_buffer[0] = num - 10 + 'A';
tmp_buffer[1] = '\0';
} else {
xtoa(num / 16);
while(tmp_buffer[i] != '\0')
i++;
if(num %16 < 10){
tmp_buffer[i] = num % 16 +'0';
tmp_buffer[i + 1] = '\0';
} else {
tmp_buffer[i] = num % 16 - 10 + 'A';
tmp_buffer[i + 1] = '\0';
}
}
return tmp_buffer;
}
void uart_printf(char *fmt,...)//%c %d %x %s
{
va_list ap;
int i = 0;
va_start(ap,fmt);
while(fmt[i] != '\0'){
if(fmt[i] != '%'){
uart_putchar(fmt[i]);
if(fmt[i] == '\n'){
uart_putchar('\r');
}
i++;
} else {
switch(fmt[i + 1]){
case 'd':
uart_put(itoa(va_arg(ap,int)));
break;
case 'x':
uart_put("0x");
uart_put(xtoa(va_arg(ap,int)));
break;
case 's':
uart_put(va_arg(ap,char*));
break;
case 'c':
uart_putchar(va_arg(ap,int));
break;
default:
uart_putchar(va_arg(ap,int));
break;
}
i += 2;
}
}
va_end(ap);
}
lcd.tar.gz_嵌入式 LCD
版权申诉
90 浏览量
2022-09-24
05:41:50
上传
评论
收藏 5KB GZ 举报
刘良运
- 粉丝: 66
- 资源: 1万+
最新资源
- python开心麻花影视作品分析程序+源码.zip
- pythonExcel数据分析师程序+源码.zip
- PlatformUI.jar 支持RCP控件环境插件
- 基于BP神经网络的回归分析,基于优化动量因子的BP神经网络,基于优化学习率的BP神经网络,基于优化隐藏层神经元的bp神经网络
- python读取excel数据Python-file-reading-master.zip
- STC15单片机串口2使用程序例子
- 读取日志的excel生成周报 用python3开发weekplan-master.zip
- python 读取excel数据导入dbimport-data-master.zip
- K折交叉验证BP神经网络,多输入多输出BP神经网络(代码完整,数据齐全)
- B07训练原图.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈