cityfuture 发表于 2014-9-19 14:57:04

求教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 或整数转字符串的函数吗?

rgb0 发表于 2014-9-19 15:31:04

共用体,不知是否可行

csaaa 发表于 2014-9-19 15:42:07

dswybs 发表于 2014-9-19 16:15:21

我这个可以吗?

cityfuture 发表于 2014-9-19 17:17:06

dswybs 发表于 2014-9-19 16:15
我这个可以吗?

能把图中的程序发一份吗?

dswybs 发表于 2014-9-19 17:56:23

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

西施糖葫芦 发表于 2014-9-19 21:00:53

printf函数就是一个串口重定向的东西,将printf中的不定长参数进行解释,然后通过串口发送字符串函数发送出去就可以了。对不定长函数进行解释前辈们都已经给弄好了,我们只需要简单的写好串口发送字符串函数就可以了。

th1993 发表于 2014-9-19 22:20:38

取出各个位后加上0x30

lanzhe1991 发表于 2014-9-19 23:03:58

可以用ASKII形式的传数字

cityfuture 发表于 2014-9-20 07:03:55

dswybs 发表于 2014-9-19 17:56
我把我的bootloader程序给你吧,哈哈,这个程序专门来测试串口的,还可以用scanf函数,我在这里介绍过
ht ...

惭愧,没有理解,89C52,12Mhz 可否帮忙把DS18B20 的整数结果ltemp转换成字符串发送出去?

哼嘿哈嘿哈 发表于 2014-9-20 07:30:23

查表法,

benli 发表于 2014-9-20 15:13:48

用串口最好用11.0592M晶振

dswybs 发表于 2014-9-19 14:57:05

cityfuture 发表于 2014-9-20 07:03
惭愧,没有理解,89C52,12Mhz 可否帮忙把DS18B20 的整数结果ltemp转换成字符串发送出去?
...

可以使用printf了,但是DS18B20程序好像没起作用,我没改你的DS1820的程序,记得把莫元赏给在下{:lol:} {:lol:} {:lol:}

nhztb 发表于 2014-9-23 09:21:52

我是搞点测试用的,所有程序不求最好,只求能用

/******************************************************************
- 功能描述:将一个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';
}

nanoha2009 发表于 2014-9-26 14:51:17

其实楼主把发送的数字,拆开转化为char型数组,就是变成ASCII码的数组发送就行了嘛,就像上面各位说的加上0x30
页: [1]
查看完整版本: 求教stc单片机中如何将整数转换成字符串向串口发送