DIY单片机串口打印函数print-创新互联

原始的单片机串口只能发送单字节数据,再加个封装也就能发送个字符串,但是无法发送数字变量,要发送数字变量那基本要引入C语言的库函数printf,但是这个pintf函数 好用确实是好用但是有个很大的缺点相对于小存储容量的单片机来说,就是占用存储容量特别大,我曾在51单片机上测试 引入个printf函数占用1KB ROM空间,这就离谱了 我那个51单片机一共才8KB ROM,这就不能使用printf函数了,太占用存储器空间了!但是在开发的时候 有时候为了调试,比如的输出个温度数据,ADC检测到的电压值,不接显示屏的情况下又必须得用到串口打印,所以我就自己DIY了个串口打印函数

网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、重庆小程序开发公司、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了路北免费建站欢迎大家使用!
char* number[]={"0","1","2","3","4","5","6","7","8","9","10"};

void print(char*str, int x)
{SCI_SendString(str);

    if(x>0 && x<100)
    {SCI_SendString(number[x/10]);//串口发送字符串函数
        SCI_SendString(number[x%10]);
    }
    else if(x>=100 && x<1000)
    {SCI_SendString(number[x/100]);
        SCI_SendString(number[(x%100)/10]);
        SCI_SendString(number[x%10]);
    }
    else if(x>=1000 && x<10000)
    {SCI_SendString(number[x/1000]);
        SCI_SendString(number[(x%1000)/100]);
        SCI_SendString(number[(x%100)/10]);
        SCI_SendString(number[x%10]);
    }

    SCI_SendString("\r\n");
}
//example:  print("ADC: ",a);

这个打印函数的算法原理比较简单粗糙,只能打印正整数,函数的实现思路在这里了,大家如果有需要打印负数,浮点数的可以在这个基础上改改

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网页标题:DIY单片机串口打印函数print-创新互联
浏览路径:http://ybzwz.com/article/diojih.html