关于printf函数重定向的问题

如题,在STM32上对printf进行重定向,printf输出最后多了0x10,0x02,显示为类似制表符的东西,很费解啊,求助!!!附部分代码和效果图如下:voidUS... 如题,在STM32上对printf进行重定向,printf输出最后多了0x10,0x02,显示为类似制表符的东西,很费解啊,求助!!!
附部分代码和效果图如下:
void USART_Configuration(void)
{
USART_InitTypeDef USART_InitStructure;
/* USART1 configured as follow:
- BaudRate = 9600 baud
- Word Length = 8 Bits
- One Stop Bit
- No parity
- Hardware flow control disabled (RTS and CTS signals)
- Receive and transmit enabled
*/
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No ;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

/* Configure the USART1*/
USART_Init(USART1, &USART_InitStructure);
USART_Init(USART2, &USART_InitStructure);

/* Enable the USART1 */
USART_Cmd(USART1, ENABLE);
USART_Cmd(USART2, ENABLE);

USART_GPIO_Configuration();
}

int fputc(int ch, FILE *f)
{
/* Write a character to the USART */
USART_SendData(USART1, (u8) ch);

/* Loop until the end of transmission */
while(!(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == SET))
{
}

return ch;
}

main(void)
{
...
printf("CESHI");
...
}

输出多了 10 02 ,不知道是为什么。
另外scanf的重定义是只修改fgetc就可以了嘛?为什么我改了在编译的时候就报错?
展开
 我来答
dongchengdiao
2010-10-21 · TA获得超过988个赞
知道小有建树答主
回答量:579
采纳率:0%
帮助的人:353万
展开全部
我看了你的函数,和我的一模一样,我的是好使的。看看是不是电脑那端配置的问题,stm32这端是正确的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式