求教stc单片机中如何将整数转换成字符串向串口发送
本帖最后由 cityfuture 于 2014-9-20 06:58 编辑unsigned char *PSTR;
void send(char *send)
{
PSTR=send;
while (*PSTR!=0)
{
SBUF=*PSTR++;
while(!TI);
TI=0;
}
}
上为串口发送信息,在程序中单独调用send(“dd”)可以发送
引用#include <stdio.h>
后使用sprintf 或printf 都无效果,而且引用printf后P2口的数码管出现流水灯现象,
http://www.amobbs.com/forum.php?mod=viewthread&tid=5479867&extra=page%3D2%26filter%3Dauthor%26orderby%3Ddateline%26orderby%3Ddateline
上面这个的printf是如何使用的?
望告知uVision4中sprintf 或printf使用方法,或提供一个整数转换为字符串的函数供参考
上面是工程文件,89C52 12Mhz 是否可以帮忙 加入sprintf 或printf 或整数转字符串的函数吗?
共用体,不知是否可行 我这个可以吗? dswybs 发表于 2014-9-19 16:15
我这个可以吗?
能把图中的程序发一份吗? cityfuture 发表于 2014-9-19 17:17
能把图中的程序发一份吗?
我把我的bootloader程序给你吧,哈哈,这个程序专门来测试串口的,还可以用scanf函数,我在这里介绍过
http://www.amobbs.com/thread-5593954-1-1.html
(出处: amoBBS 阿莫电子论坛)
下面是STC单片机做的数字电源展示视频{:lol:} {:lol:} {:lol:}
http://v.youku.com/v_show/id_XNzg2MDk4NzA0.html printf函数就是一个串口重定向的东西,将printf中的不定长参数进行解释,然后通过串口发送字符串函数发送出去就可以了。对不定长函数进行解释前辈们都已经给弄好了,我们只需要简单的写好串口发送字符串函数就可以了。 取出各个位后加上0x30 可以用ASKII形式的传数字 dswybs 发表于 2014-9-19 17:56
我把我的bootloader程序给你吧,哈哈,这个程序专门来测试串口的,还可以用scanf函数,我在这里介绍过
ht ...
惭愧,没有理解,89C52,12Mhz 可否帮忙把DS18B20 的整数结果ltemp转换成字符串发送出去?
查表法, 用串口最好用11.0592M晶振 cityfuture 发表于 2014-9-20 07:03
惭愧,没有理解,89C52,12Mhz 可否帮忙把DS18B20 的整数结果ltemp转换成字符串发送出去?
...
可以使用printf了,但是DS18B20程序好像没起作用,我没改你的DS1820的程序,记得把莫元赏给在下{:lol:} {:lol:} {:lol:} 我是搞点测试用的,所有程序不求最好,只求能用
/******************************************************************
- 功能描述:将一个32位的变量dat转为字符串,比如把1234转为"1234"
- 参数说明:dat:带转的long型的变量
str:指向字符数组的指针,转换后的字节串放在其中
******************************************************************/
void u32tostr(unsigned long dat,unsigned char *str)
{
unsigned char temp;
unsigned char i=0,j=0;
i=0;
while(dat)
{
temp=dat%10+0x30;
i++;
dat/=10;
}
j=i;
for(i=0;i<j;i++)
{
str=temp;
// str=temp;
}
if(!i) {
str=0+0X30;
str='\0';
}
str='\0';
}
其实楼主把发送的数字,拆开转化为char型数组,就是变成ASCII码的数组发送就行了嘛,就像上面各位说的加上0x30
页:
[1]