在Atmel Studio 6.2中,想要使用sprintf 函数将浮点数转成字符串,但是没有结果
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#include <stdlib.h>
unsigned char *bufsprint[30]={0};//格式化字符串数组缓存
void init_com1(void)//初始化串口
{
UCSR1B=0X18;
UCSR1C=0X06;//
UBRR1H=0;
UBRR1L=0X81;
}
void USART1_SendOneData(unsigned char data)//发送一个字节
{
UDR1=data;
while((UCSR1A&0X40)==0);
UCSR1A=UCSR1A|0X40; //清除标志位
}
void USART1_Sendcoscommand(unsigned char *p,unsigned char a) //发送指定字节
{
unsigned int i=0;
for(i=0;i<a;i++)
{
USART1_SendOneData(*(p+i));
}
}
main(void)
{
init_com1();
while(1)
{
sprintf(*bufsprint,"%f",3.14559);
USART1_Sendcoscommand(bufsprint,30);
_delay_ms(1000);
}
}
打出来的值都是0,
|