STM32用printf串口输出中文乱码,要怎么解决?
试试这个,打开你keil的EDIT下拉菜单,最下面有一个configuration,点击它,在editor选项里有一个encoding,这里选择 GB2312
809496325QQ替你分忧
没理解了是printf输出的是乱码 还是.c文件中的中文是乱码
要设置成2312编码之后才能复制粘贴文本到keil中不出现乱码 已经乱的我也想转过来
正常使用printf要么勾选 usemicrolib选项 要么自己比如说 网上提供的方法 自己做个函数然后再用printf
之前是.c文件的中文乱码,我把文件编码转成了UTF-8解决了。但现在用到printf,输出的中文是乱码。
我用printf 可以输出中文啊 貌似就是这个重定向文件 貌似也得勾选microlib 需不需勾选不太了解
//Printf重定向文件!
int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (unsigned char) ch);// USART1 ? USART2 ?
while (!(USART1->SR & USART_FLAG_TXE));
return (ch);
}
void UART_PutChar(USART_TypeDef* USARTx, uint8_t Data)
{
USART_SendData(USARTx, Data);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET){}
}
void UART_PutStr (USART_TypeDef* USARTx, uint8_t *str)
{
while (0 != *str)
{
UART_PutChar(USARTx, *str);
str++;
}
}
谢谢,我弄好了。printf重新定向没问题。就是c文件编码问题,应该把c文件编码转成ANSI,然后编辑器设置成GB2312,这样中文注释和printf输出中文都正常了
能教教我怎么弄吗?我也出现这种问题
http://jingyan.baidu.com/article/1e5468f9625650484961b73b.html
这么就可以