(1)RCC: PS:注意在时钟树配置界面将其配置成8MHz(推荐),时钟配错会导致输出乱码。 (2)NVIC:打开中断 (3)SYS: (4)USART3: (5)USB_OTG_HS: 串口配置完成,但这时候还不能使用printf函数来打印数据,需要我们重写函数。 二、printf重定向 首先需要我们引用头文件,注意要放在private includes下面,如图所示: /*...
} 注意: 1、需要添加头文件:stdio.h 2、如果打印英文正常,中文出现乱码请按这个操作: 看看你的.C文件的编码方式主要是main.c(或者是你用printf函数的*.C文件)用那个记事本打开main.c文件鼠标点击文件->另存为然后 最后一行会有编码 选择ANSI 然后保存 选择替换然后回到MDK 重新编译下载 就OK了©...
我们在使用其他单片机的时候喜欢使用printf函数来输出代码运行日志,或者检查bug;但是stm32不支持printf函数直接使用,所以我们需要重定向串口,使用串口助手来查看printf输出的内容。 2.代码 话不多说上代码,我已经封装好了,大家直接粘贴进自己的工程即可。 usart_printf.h此文件声明了所使用的函数 #ifndef __USART_PRINT...
清除串口1发送中断否则第一个数不会发送将printf内容发往串口usartsenddatausart1uint16tch STM32串口首字符出现乱码的问题可能原因之一 出现的问题:在使用sscom32串口调试助手,首字符出现乱码“tarttarttarttarttarttart” 原因:波特率过高 解决办法:将波特率设置的低一点,通常9600即可 现象:乱码为波特率较高;正常显示...
stm32串口实现printf重定向及错误解决办法 增加Retarget.c,实现printf重定向 你可以把Retarget.c添加到你的工程里,就可以了。 D:\ProgramFiles\Keil\ARM\Startup\ 然后只重载 externintsendchar(intch);/*inSerial.c*/ externintgetkey(void);/*inSerial.c*/ intsendchar(intch) { /*Placeyour...
如果输出中文乱码 把代码UTF-8转换为GBK格式 如果需要支持浮点数输出 把#add_compile_options(-mfloat-abi=soft) 前面的#取消掉,增加后会消耗11.3K内存。 如果是老版本CubeMX 在CMakeLists.txt 增加 -u _printf_float 让该函数例外不要被前面的-specs 裁剪缩小内存。
否则FILE类型未定义。勾选了Use MicroLib选项,重定向fputc()函数后,我们就可以在工程代码中使用printf(...
相信同我一样,有一部分同学在写单片机程序的时候喜欢用printf打印相关信息到串口,然后在串口调试助手看数据变化。 但是我之前在使用printf去打印中文字符的时候,出现了乱码,这种问题以前也碰到过,只是没去深究为什么,往往都是重新建工程,写代码。 但是时隔很久,又再次碰到这个问题,就想好好把这个问题修改完, ...
一、重定向printf的重要性 printf大法好 ,printf函数可以输出各种格式化信息,xio习C语言的第一课就是printf("Hello World\r\n");这句话一直印象深刻啊...我们在开发STM32中也同样需要输入输出很多信息,为了方便调试,有时候printf暴力输出也不是一个很差的方法。