STM32F1xx单片机使用固件库时串口打印乱码的解决办法

2018-06-10 12:12:13编辑:什么鱼 关键字:STM32F1xx  单片机  固件库  串口打印  乱码

有时STM32F1系列单片机在配置完串口之后进行打印时,会出现打印乱码的问题,此时有可能是以下几种情况引起:

1. 串口工具所选择的波特率和单片机设置的波特率不一致,请认真排查波特率问题;

2. 串口的TX、RX管脚可能接触或焊接不好,请排查硬件问题;

3. 程序中使用的晶振频率值和外部实际使用的晶振值不一致,可按以下方法进行修改解决。

    根据外部晶振,若使用的是25M,那么将"stm32f10x.h" 做如下修改,(启动文件使用的是startup_stm32f10x_cl.s)就能解决问题。


关键字:STM32F1xx  单片机  固件库  串口打印  乱码

来源: eefocus 引用地址:http://www.eeworld.com.cn/mcu/article_2018061039725.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32串口通信乱码详细处理方法
下一篇:STM32模拟串口输出偶有乱码

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32F4XX 采集编码器的溢出处理

STM32F4XX定时器16位,采集编码器时候会在0xFFFF溢出(假设配置period = 0xFFFF)假设不溢出的情况下1ms之内编码器变化的最大范围小于0x7FFF,则关于溢出则可以进行如下处理,此时EncCnt 便是累计的编码器取值配置定时器时屏蔽定时器的溢出中断。反转的变化规律为0溢出突变到65535,然后平缓向0正转的变化规律为0平缓到65535,然后突变到0int volatile EncCnt = 0;// 编码器取值void SysTick_Handler(void){// systick中断,1ms一次  static int encoder[2] = {0 , 0};// 两次编码器读值,用以计算
发表于 2018-07-19 22:11:22

STM32F0xx_EXTI中断配置详细过程

; //初始化函数    LED_Init();    Delay_Init(48);    LED_ON();    delay_ms(5000);    EXTI_PA0_Config(); //初始化中断    EXTI_PA2_Config();    while(1)    {        //等待    }}总结:stm32f030的中断配置与stm32f103的中断配置是有些许的不同,但是大致还是差不多的。
发表于 2018-07-10 21:38:59

STM32F4xx时钟理解

),APB2 是高速总线(最高 84Mhz)。另外定时器部分,如果所在总线( APB1/APB2)的分频系数为 1,那么就不倍频,如果不为 1(比如 2/4/8/16),那么就会 2 倍频( Fabpx*2)后,作为定时器时钟输入。   简单点说,举个APB1的例子,系统时钟是168Mhz,APB1分频系数为4(system_stm32f4xx.c配置),则APB1速度为42Mhz,但是挂靠在在该总线上的定时器,由于分频系数4而不是1,因此定时器输入频率为42Mhz x 2 =84 Mhz
发表于 2018-06-26 20:03:58
STM32F4xx时钟理解

STM32F1xx ADC 采样 频率的确定

的时钟,则可知ADC 时钟频率为 9MHz从手册可知: ADC 转换时间:STM32F103xx 增强型产品:ADC 时钟为56MHz 时为1μs(ADC 时钟为72MHz 为1.17μs)(3)由以上分析可知:不太对应,我们重新对以上中 内容调整,提出如下两套方案:方案一:我们的输入信号是50Hz (周期为20ms),初步定为1周期2500个采样点,(注:一周期最少采20个点,即采样率最少为1k) ,每2个 采样点间隔为 20ms /2500 = 8 usADC可编程的通道采样时间 我们选71.5 周期,则 ADC采样周期一周期大小为8us /71.5 。 ADC 时钟频率约为 9 MHz。 将PCLK2 8 分频后作
发表于 2018-04-22 19:08:38

STM32F0XX Cortex-M0 IAP

最近涉及到STM32F0XX的IAP,找了很多相关资料,感觉不是特别清楚,所以综合一些资料分享一下。刚开始做的时候以为很简单,在程序中写了个跳转函数(跳转到System Memory,并运行MCU自己的Bootloader)如下:void EnterBootLoader(){    void((*BootLoaderEntry)());    BootLoaderEntry = (void((*)()))(*((uint32_t *)0x1FFFEC04));    SCB->VTOR
发表于 2017-11-08 08:47:32

51单片机实现LED流水灯(数组方式和位运算方式)

/* 名称:51单片机实现LED流水灯(数组方式和位运算方式)说明:今天又重新开始系统的学习51了,LED就算个开端吧。 要注意两点: 1、sfr和sbit是C语言扩展出来的关键字。其中sfr用于对特殊功能寄存器进行声明,sbit用于对某些特殊功能寄存器的某位进行声明。这里和宏定义很相似,但是不能用宏定义进行替换,对于前者是因为51单片机的寄存器存在于内部空间0x80-0xFF,这空间属于直接寻址,51特殊功能寄存只能直接寻址,不能间接寻址。如果用宏定义的话,在翻译成汇编时就会认为是通过总线访问对应的外部地址了。对于后者,sbit是定义一个标志位,也叫位变量。而类似于#define key1 P3
发表于 2018-07-21 13:08:22

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved