初学STM32所遇到的小问题及解决方案

前言

同一问题产生的原因可能不同,以下解决方案仅仅对本人所遇问题的解决,不一定能够解决所有问题。
开发工具:

  • 开发板:STM32F103RCT6
  • STM32CubeMX
  • IDE: Keil-MDK

文章目录

  1. 前言
  2. 烧录文件的生成
  3. 串口接收失败
  4. printf不够用
  5. 后记

烧录文件的生成

问题:编译是未产生下载到单片机的.axf格式文件。
原因:编译时只点击Translate,所以不会生成工程文件。
方法:记得点击Build或Rebuild。
在这里插入图片描述
从左到右依次为Translate、Build、Rebuild。
Translate是编译当前改动的源文件,在这个过程中检查语法错误。但并不生成可执行文件
Build是只编译工程中上次修改的文件及其它依赖于这些修改过的文件的模块,同时重新链接生成可执行文件。如果工程之前没编译链接过,它会直接调用Rebuild All。另外在技术文档中,Build实际上是指increase build,即增量编译。
Rebuild是不管工程的文件有没有编译过,会对工程中所有文件重新进行编译生成可执行文件,因此时间较长.

串口接收失败

问题:通过PC端的串口助手以及手机蓝牙向单片机串口发送数据,串口接收不到数据,无法进入接收终端函数。

如何确定串口是否接受到数据:
1、将程序编译下载到开发板中,点击keil的调试功能按钮,如下图所示:
在这里插入图片描述
2、将串口接收变量放到监视串口中。如下图(选择变量,右键在弹出的选项中选择“Add’变量’to”,再在弹出的选项中随便选择一个窗口,如Watch 1。)
在这里插入图片描述
3、如下图:点击运行,并通过串口助手向串口发送数据,观察存储接收值得变量是否改变成发送值,不是,则串口无法接收数据。
在这里插入图片描述

原因:

  1. 串口损坏。
  2. 波特率设置错误。
  3. CubeMX配置或keil程序编写错误

判断方法:
先检查CubeMX里对串口的设置是否正确。如下图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

是否勾选红色方框内的中断允许,波特率设置是否正确(比如:串口屏以及语音播报的波特率被设置为9600bit/s,如果串口波特率设置不一致,串口无法正确接收数据),以及是否允许串口接收等等。再检查keil编写程序是否有误。无误后可尝试换一个串口,运行如果成功,则可能串口损坏,只能换串口。

printf不够用

问题:在使用语音播报以及串口屏时,都使用到printf这个函数进行数据发送,printf只能绑定一个串口。
解决方案:配置多串口printf(另写一个与printf功能相似的函数)。
方法连接:(https://blog.csdn.net/qq_34022877/article/details/122909033?utm_source=app&app_version=5.0.1&code=app_1562916241&uLinkId=usr1mkqgl919blen)(我的学长所写,很好理解)

后记

以上为本人目前学习单片机所遇到的问题及其解决方法,可能并不全面。如果能有所帮助,甚好,没有还望体谅。

版权声明:本文为CSDN博主「萝卜呀!」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_58408884/article/details/122940570

生成海报
点赞 0

萝卜呀!

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

pwm电机调速的原理介绍与代码实现

1、pwm实现调速的原理与介绍 PWM(Pulse Width Modulation)脉冲宽度调制。 1)占空比 pwm占空比就是一个脉冲周期内有效电平在整个周期所占的比例。 通过调节PWM的占空比就能调节IO口上电压的持续

【STM32Cube笔记】2-STM32Cube安装教程

【STM32Cube笔记】系列文章目录 1-基于STM32的VSCode入门级教程前言 2-STM32Cube安装教程 3-STM32CubeIDE汉化 4-STM32Cube配置时钟设置 5-跑马灯引脚配置 6-Cortex-M7内核基本配

Proteus STM32仿真学习板

一 全球IC爆冷,价格猛涨,ST系列单片机更是一马当先,贵到你怀疑人生。这个时候想学习STM32的基础去购买开发板是很不划算的,而且用完就搁置了,吃灰到永远,