STM32串口的波特率设置成256000怎么得到的数据不正确??? 设置成115200以下的都可以????

如题所述

看看你的串口助手是否和单片机设置的波特率一样。
如果一样可能是速度太快导致的,速度越快,串口线越长,误码率越高。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-29
00061 /* Uncomment the line below according to the target STM32 device used in your
00062 application
00063 */
00064
00065 #if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL)
00066 /* #define STM32F10X_LD */ /*!< STM32F10X_LD: STM32 Low density devices */
00067 /* #define STM32F10X_LD_VL */ /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */
00068 /* #define STM32F10X_MD */ /*!< STM32F10X_MD: STM32 Medium density devices */
00069 /* #define STM32F10X_MD_VL */ /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */
00070 /* #define STM32F10X_HD */ /*!< STM32F10X_HD: STM32 High density devices */
00071 /* #define STM32F10X_HD_VL */ /*!< STM32F10X_HD_VL: STM32 High density value line devices */
00072 /* #define STM32F10X_XL */ /*!< STM32F10X_XL: STM32 XL-density devices */
00073 /* #define STM32F10X_CL */ /*!< STM32F10X_CL: STM32 Connectivity line devices */
00074 #endif
00075 /* Tip: To avoid modifying this file each time you need to switch between these
00076 devices, you can define the device in your toolchain compiler preprocessor.
看库里面的stm32f10x.h文件,里面很多内容与系统时钟的配置有关。该文件会根据选择的芯片类型来进行时钟配置,要在此位置将选用的芯片类型去掉注释符。当然不想每次修改此文件,比较方便的方法就是在编译器的target options选项框中define
试一下

STM32串口的波特率设置成256000怎么得到的数据不正确??? 设置成...
看看你的串口助手是否和单片机设置的波特率一样。如果一样可能是速度太快导致的,速度越快,串口线越长,误码率越高。

STM32F429串口波特率最高支持多少
从时钟树上面来看,不同串口可以支持到2~5Mbit的速度。只是一般用9600之类的几十kb的速度,用来长线通讯,板间通讯可以适当调高。

如何为串口通讯增加新的波特率
例: 设置模块串口波特率为19200bps ,请发给模块指令“AT+B19200 ”,模块返回 “OK+B19200”。rs232串口通讯波特率的理解?坐等! 波特率为 9600 BPS,每一位,占用的时间,是:t1 = 1\/9600s。 无论数据帧是10位,或是 11 位,它的每一位,占用的时间都是:t1 = 1\/9600s。51单片机中...

相似回答