哦 我已经知道了问题的原因了 这里面有几次的包含 这个工程不太科学 因为在usart.c中有间接包含到 stm32f10x.h 我以为.h文件中声明也应该包含stm32f10x.h 其实不用 include 在编译之前应该把文件都在.c中展开了 所以.h中文件可以使用 也不会报错 因为.c文件开始已经包含stm32f10x.h 也是自己的基础不好 看了半天 另外工程在.h应该包含.c文件所有用到的头文件 这样还是比较好 也比较清楚 谢谢楼上兄台的热心帮助 希望以后有更多的人一起讨论 啊~ 感觉自己好无知 ! Still have a long way to go ~