TI中文支持网
TI专业的中文技术问题搜集分享网站

CCS10 MSP430F149 printf函数重定向到串口1,无法打印出整型数

Other Parts Discussed in Thread:MSP430F149, MSP-FET430UIF, MSP430F5529

CCS版本: Version: 10.3.0.00007 

芯片型号:MSP430F149(没有使用TI的开发板)

烧录工具:MSP-FET430UIF

串口1:初始化程序参考官方例程fet_uart11_0115k_2

printf重定向程序:

/*
 * 函数名:Uart1_SendByte
 * 函数功能:串口1发送单个字符
 * 形参:data:要发送的字符数据
 * 返回值:无
 * 备注:无
 * */
void Uart1_SendByte(uint8_t data)
{while(!(IFG2 & UTXIFG1));TXBUF1 = data;
}

/*
 *
 * */
void Uart1_SendString(uint8_t* p)
{while(*p != '\0'){Uart1_SendByte(*p++);}
}

/*printf重定向到串口1*/
int fputc(int ch, FILE *f)
{Uart1_SendString((uint8_t*)&ch);return ch;
}

打印测试函数:

	uint8_t cnt = 0;while(1)
	{if(cnt++ >= 255){cnt = 0;}printf("cnt = %d\r\n",cnt);delay_ms(1000);
	}

打印结果:

只能输出cnt=,字符输出没有问题,整型输出没有任何东西。

请问这种问题有什么办法可以解决吗?

Susan Yang:

请问您的printf_support配置是什么? 

,

user6616820:

选择的是full

,

Susan Yang:

抱歉,之前漏掉了您第一条回复。我会在明天拿板子看一下后给您回复

,

user6616820:

好的,我贴一下我的串口1初始化的具体代码给您

/** 函数名:Uart1_Init* 函数功能:初始化串口1,P3.6-TX,P3.7-RX 波特率115200 8N1* 形参:无* 返回值:无* 备注:该串口用于调试信息输出* */
void Uart1_Init(void)
{volatile unsigned int i;P3SEL |= 0xC0;// P3.6,7 = USART1 option selectBCSCTL1 &= ~XT2OFF;// XT2ondo{IFG1 &= ~OFIFG;// Clear OSCFault flagfor (i = 0xFF; i > 0; i--);// Time for flag to set}while ((IFG1 & OFIFG));// OSCFault flag still set?BCSCTL2 |= SELM_2 + SELS;// MCLK= SMCLK= XT2 (safe)ME2 |= UTXE1 + URXE1;// Enable USART1 TXD/RXDUCTL1 |= CHAR;// 8-bit characterUTCTL1 |= SSEL1;// UCLK = SMCLKUBR01 = 0x45;// 8Mhz/115200 - 69.44UBR11 = 0x00;//UMCTL1 = 0x00;// modulationUCTL1 &= ~SWRST;// Initialize USART state machine
//IE2 |= URXIE1;// Enable USART1 RX interrupt
}

,

Susan Yang:

好的 谢谢您的反馈,我会在确认后给您回复

,

user6616820:

您好,请问有什么进展了吗?

,

Susan Yang:

抱歉,回复有些晚了

我使用的时MSP430F5529(手边没有149的板子)

是可以正常打印的 

相关设置如下

,

user6616820:

您好,我不是用ccs的终端显示打印数据,我用的是电脑的串口工具,通过串口1重定向printf函数来打印。请问这两者有什么区别吗?

我尝试了您的建议,但是还是不行。

,

Susan Yang:

抱歉,之前漏掉了您的回复,您现在问题解决了没有?

user6616820 说:我不是用ccs的终端显示打印数据,我用的是电脑的串口工具,通过串口1重定向printf函数来打印。请问这两者有什么区别吗?

CCS打印的话,使用的是开发板上的虚拟串口来打印的

,

user6616820:

不好意思回复晚了,串口输出整型数和浮点数还是不行,我现在暂时在输出前把整型数或浮点数转换成字符串,再用%s输出到串口工具就可以显示了。

赞(0)
未经允许不得转载:TI中文支持网 » CCS10 MSP430F149 printf函数重定向到串口1,无法打印出整型数
分享到: 更多 (0)