为什么我在使用Keil MDK调试时得到了来自stm32的usart的正确消息,但在使用eclipse + CDT时从USART得到了错误的输出

时间:2015-12-19 10:16:14

标签: eclipse stm32 usart

我在eclipse中安装这些插件来构建stm32开发环境: GNU ARM Eclipse插件 CDT GNU交叉开发工具 Sourcery CodeBench Lite 2014.05-28 for ARM EABI J-Link ARM V4.15e

我正在尝试在eclipse中运行USART1程序并检查USART1的输出,但是当我调试此代码时,我得到了错误的输出消息。我发送的消息是" DECA0130"但我得到的是" ???????",这显然是乱码。

起初,我认为问题是我没有写一个写代码。我再次检查了我的项目。但是没有发现任何错误。 然后我在Keil Mdk中使用相同的代码构建了一个新项目。这次我从USATR1收到了正确的消息。我收到字符串" DECA0130"。

这很奇怪。因为我不熟悉eclipse环境,所以我之前使用Keil做我的编码。但是最近的项目迫使我编写代码。我想也许某个地方我忘了配置。 由于它是新用户,我不知道如何插入程序。如果有任何需要,请告诉我。我会尽力让你看到 提前致谢

1 个答案:

答案 0 :(得分:0)

似乎是时钟问题。检查时钟设置。 eclipse ARM插件会为此生成一些配置。检查SetSysClock文件中的函数system/src/cmsis/system_stm32*.c。我认为Keil MDK也是这样做的,但配置不同。

编辑:我提到的函数SetSysClock是错误的。时钟配置在configure_system_clock函数(文件_initialize_hardware.c)中完成。