整型数转换成字符串

2019-07-20 16:13发布

求各位大神指点 我想将一个整型数转换成字符串 然后在串口上显示 网上看的说用sprintf这个函数 可是我调用这个函数的时候(已加入头文件stdio.h) 编译的时候他说有错
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
zhaoxqi
1楼-- · 2019-07-20 22:08
楼主详细说说怎么回事啊,这么说太笼统了
heweibig
2楼-- · 2019-07-21 02:19
 精彩回答 2  元偷偷看……
zhenykun
3楼-- · 2019-07-21 02:36
把你的代码贴上看看啊,根据提示似乎你参数使用错误
heweibig
4楼-- · 2019-07-21 05:13

#include "msp430g2553.h"
#include <stdio.h>


void UARTPutstring( );
void UARTPutChar();
void UART_init();

int a=10;
char *s;



void UARTPutChar(unsigned int cTX)
{
   UCA0TXBUF=cTX;
   while (!(IFG2&UCA0TXIFG));  //waiting UCA0TXBUF is empty
   IFG2&=~UCA0TXIFG;           //clear TX interrupt flag
}



void UARTPutstring(char *str)
{

   do
   {
    UARTPutChar(*str);
   }
   while(*++str!='');
   UARTPutChar(' ');

}

void UART_init(void)
{
   P1SEL |=BIT1+BIT2;  //设置为外围模块第二功能P1.1,2 = USART0 TXD/RXD
   P1SEL2|= BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
   P1DIR  |= BIT2;           //P1.2  UART_TX
   P1DIR  &=~BIT1;           //P1.2  UART_RX       //串口发送数据端口为输出,接收数据端口为输入
   UCA0CTL1|=UCSWRST;    //USART第0位被置位0后,开始设置配置UART
   UCA0CTL0 &=~UC7BIT;       //设置数据位为8位
   UCA0CTL1 |=UCSSEL_2;      //选择波特率寄存器时钟信号,smCLK
   UCA0BR0=109;
   UCA0BR1=0;
   UCA0MCTL = UCBRS1;   //32k时钟下波特率为9600
   UCA0CTL1&=~UCSWRST;
   IE2 |= UCA0TXIE;
}


void main(void)
{

   WDTCTL = WDTPW + WDTHOLD;                 // 关闭看门狗
   UART_init();
   sprintf(s,a);
   UARTPutstring(s);

}
  这样


Description        Resource        Path        Location        Type
#169 argument of type "int" is incompatible with parameter of type "const char *"        main.c        /TEST1        line 57        C/C++ Problem
dengdc
5楼-- · 2019-07-21 07:12
 精彩回答 2  元偷偷看……
lizye
6楼-- · 2019-07-21 13:10
sprintf(s,"%d",a);//这才是正确的用法

一周热门 更多>