使用Keil开发STM32问题记录

本文作者作为STM32新手,记录了在使用Keil5开发过程中遇到的硬件问题、软件使用技巧、调试方法及常见调试问题。硬件问题包括仿真器识别故障和SWD仿真错误;软件使用涉及工程文档管理和精确计时功能;调试方法涵盖J-Link、J-Scope虚拟示波器的运用;调试问题则讨论了引脚复用、栈溢出、结构体赋值和晶振频率设置错误等常见问题。通过整理这些问题,便于后续查阅和解决。
摘要由CSDN通过智能技术生成

使用Keil开发STM32问题记录


作者平时都使用Keil5来开发STM32,因为是个新手所以会碰见很多问题,CSDN社区给了很多帮助,有很多大佬的分享解决方法,所以特意把问题分类整理记录,方便以后查找
持续更新 未完待续…………


硬件问题:
硬件问题指软件或者调试器等无法正常使用,可能因为一些驱动没装好或者版本有问题等


1.Keil无法识别野火的STM32的高速DAP仿真器
应该是电脑更新的原因,导致原本的驱动被覆盖,无法识别仿真器


2.Keil使用SWD仿真器出错
有时候因为程序逻辑出错,导致程序卡死,没有自动复位,新的程序下载不进去


软件使用:

学会使用一个软件可以达到事半功倍的效果,Keil提供了各种功能,可以方便我们的使用,但是很多时候都是自己局限在已知的地方,不去探索


1.Keil进行工程文档的管理
命名、分类规律整洁的工程文档方便我们的开发


2.Keil在线调试精确计时
单片机的某些程序非常注重及时性,有些代码的运行时间也会对程序整体造成很大影响,这个功能很方便


3.Keil安装pack包出现警告

警告窗口
编译信息出现以下提示信息
在这里插入图片描述
Keil官网提供了很多单片机的PACK包,但是由于版本问题,有的Keil版本不兼容PACK包(多是因为该包版本太新),可以从官网下载旧版本的pack包,或者升级安装新的keil。
点击此链接,找到芯片对应的pack包,找旧版本的,下载,双击安装就可以,如果还有提升就找更老版本,一般这个提示也不影响使用,强迫症表示必须去除!或者使用最上面的链接,把这个报错给删了


调试方法:

单片机代码的精髓在于调试,Debug能力非常重要,好的代码不是写出来的,而是改出来的,有一些调试方法挺有帮助的


1.Keil、J-Link和J-Scope虚拟示波器
能够直观的观察某些变量的变化趋势对调试会非常有帮助,比如调PID


调试问题:

单片机调试的时候遇到的问题真的是太多太多了,只要一直在写程序,就会一直出问题,记录一些常见或着是比较坑的问题


1.STM32的PB3和PB4不能正常输出高低电平
因为STM32的一些引脚复用的功能,PB3和PB4一般用于SWD调试引脚,所以默认是调试功能,不能正常使用


2.局部变量过大造成栈溢出,跳入硬件错误中断
有时使用了超长的数组,明明逻辑没问题,程序就是跑飞


3.结构体赋值出错,内存字节对齐问题
memcpy用来进行数据解包,赋给结构体确实方便,但是注意数据协议,不然就是瞎解包,数据乱码,硬件逻辑都没毛病,说不定解包的数据还是部分正确的


4.单片机初始化晶振频率错误,程序正常运行但是所有外设不正常工作
多出现在程序移植的时候,原本正常跑的程序移植到另一块版子上就不行了,数据全是乱码,定时器瞎跑,看看板子的晶振多少,初始化对不对,如何查看主频使用标准库函数

RCC_ClocksTypeDef RCC_Clocks;
RCC_GetClocksFreq(&RCC_Clocks);

观察RCC_Clocks这个结构体的数据就可以了,也可以参考这篇博客STM32时钟查看与设置


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值