0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在家没有硬件开发板怎么调试STM32?

技术让梦想更伟大 来源:技术让梦想更伟大 2023-05-05 14:25 次阅读

01前言

在学习51单片机的时候,经常会使用keil+protues的方式来做一些实验,这样的模拟仿真为我们节省了很多硬件和时间成本,可以更直观的看到代码的执行过程。

那么当切换到stm32系列单片机的时候,有些版本的protues可能不支持了(有的版本也支持STM32仿真),但是keil的模拟功能还是有很大的用处,例如stm32f103单片机,在keil中可以实现很好的模拟效果。

我们可以在其中使用中断、定时器、PWM等功能,可以观测到GPIO的输出情况。然而keil对stm32系列单片机不是很好的支持,如果换一个型号,你会发现完全无法模拟!!!

02配置keil,模拟stm32系列单片机

我们可以通过修改某些地方来实现keil对stm32的模拟功能。

1)首先来修改“debug”标签的内容

65661f38-eb0c-11ed-90ce-dac502259ad0.jpg

“Use simulaor”代表要使用软件模拟仿真

dialog DLL”的内容是“DARMSTM.DLL“,表示使用STM系列

“parameter”的内容是“-pSTM32F051C8“,这里匹配的是当前单片机的型号

2)initialization file

先来看一下这个文件的内容

map 0x40000000,0x4000ffff read write

map 0x40010000,0x4001ffff read write

map 0x40020000,0x4002ffff read write

map 0x48000000,0x4800ffff read write

这段内容其实是在设置单片机的内存地址的读写特性,上面的这几段地址都是可读可写的。C语言就是在存储器里不停的寻址,然后执行指令,那为什么会是上面这些地址呢?可以查看stm32f051单片机的存储器映射

6572d570-eb0c-11ed-90ce-dac502259ad0.jpg

上面只是截取部分存储器的映射情况,这是AHB2的地址。例如你要使用RCC功能,那么可以看到0x40021000•0x400213ff这部分地址需要有读写属性。

03跟踪某个变量

1)找到逻辑分析仪

完成了基本的配置以后,我们就可以debug了

6587294e-eb0c-11ed-90ce-dac502259ad0.jpg

Debug按钮就不用多说了,中间有一个按钮时逻辑分析仪,我们可以点击它,唤醒逻辑分析功能。逻辑分析仪可以帮助我们以图形的方式来观测某个型号。

2)给逻辑分析仪添加变量

658f3a44-eb0c-11ed-90ce-dac502259ad0.jpg

将鼠标定位到全局变量x的左侧,右键-->add x to-->logic analyzer,这样就可以将变量x添加到逻辑分析仪窗口,此时如果点击运行,可以在窗口看到x变量的曲线

659762be-eb0c-11ed-90ce-dac502259ad0.jpg

3)修改显示效果

从上面的图可以看到,由于x是一个uint8类型的变量,因此取值范围是0~255。但是这样有时候看不出x的变化情况,因此我需要修改逻辑分析仪的显示效果。点击setup,弹出下面的对话框,我们可以修改去x的显示颜色和显示范围

659fe042-eb0c-11ed-90ce-dac502259ad0.jpg

修改之后的显示效果,可以看出来x每2s增加一次,这也正符合代码的逻辑

65ac0732-eb0c-11ed-90ce-dac502259ad0.jpg

04使用systick

上面的x变量显示2s增加一次,原因是我们在代码里面使用了cube库的HAL_Delay函数做了延时,来看一下代码

65b8a49c-eb0c-11ed-90ce-dac502259ad0.jpg

在cube库中,这个延时函数使用的是systick功能,也许你模拟出的图像显示x不会变化,那是因为你的systick功能没有配置好

1)点击peripheral---core peripheral---system tick timer

65c56ede-eb0c-11ed-90ce-dac502259ad0.jpg

2)按照下面的方式,使能systick

65cd7106-eb0c-11ed-90ce-dac502259ad0.jpg

3)去掉代码中的等待

如果你在配置时钟代码的时候,有一些状态的等待,那么你需要关掉它,否则无法模拟仿真的

65d838a2-eb0c-11ed-90ce-dac502259ad0.jpg

05追踪GPIO

如果你的代码中要输出一个pwm波,那么逻辑分析仪是好的结果勘测仪器,但是你没有逻辑分析仪,那么还是来软件模拟一下吧。现在假如我使用stm32f051c8这个芯片,在PB2口输出一个pwm波形,那么我们来模拟仿真一下

65e4e066-eb0c-11ed-90ce-dac502259ad0.jpg

我们在keil软件的下方可以看到一个command窗口,在其中输入一条指令:

La (*((volatile unsigned int *)0x48000414))>>2

上面的指令是在逻辑分析仪中跟踪某个变量,这个变量的地址是0x48000414的bit2,

翻阅手册你可以看到,这个地址正好是PB2。。。这样我们就看到下面的结果

65ef657c-eb0c-11ed-90ce-dac502259ad0.jpg

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6030

    文章

    44486

    浏览量

    631863
  • STM32
    +关注

    关注

    2264

    文章

    10854

    浏览量

    354230
  • 51单片机
    +关注

    关注

    273

    文章

    5696

    浏览量

    122972
  • 开发板
    +关注

    关注

    25

    文章

    4890

    浏览量

    97027
  • GPIO
    +关注

    关注

    16

    文章

    1188

    浏览量

    51825

原文标题:在家没有硬件开发板怎么调试STM32?

文章出处:【微信号:技术让梦想更伟大,微信公众号:技术让梦想更伟大】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    奋斗STM32开发板V5原理图

    奋斗STM32开发板V5原理图 配套开发板光盘包含了奋斗所有产品的文档资料和例程以及技术资料 奋斗STM32开发板、奋斗配套书作者亲自在线技
    发表于 11-13 14:21 54次下载

    stm32开发板开发板原理图

    stm32开发板开发板原理图。
    发表于 12-21 15:38 61次下载

    stm32开发板PCB

    stm32开发板相关资料,又需要的下来看看
    发表于 12-14 21:27 60次下载

    基于STM32野火开发板上的源程序

    文档内容包含了STM32野火开发板上的源程序,MP3_+_FATFS_+_SD卡的程序,程序已在板子上调试通过,供网友参考。
    发表于 09-01 14:46 128次下载

    STM32开发板硬件详解及STM32软件仿真详解

    STM32手册: 本章将分为如下几个部分: 1,ALIENTEK MiniSTM32 开发板简介; 2,ALIENTEK MiniSTM32 开发板
    发表于 09-12 15:30 0次下载

    stm32开发板哪个好

    stm32开发板样式多种多样,stm32开发板哪个好? 比如官方的4M\mini stm32\
    发表于 10-10 08:36 5.5w次阅读

    微雪电子STM32F469NIH6开发板 学习简介

    STM32F469I-DISCO STM32F469NIH6开发板 评估 板载ST-LINK/V2 支持仿真调试 型号
    的头像 发表于 12-26 15:57 4279次阅读
    微雪电子<b class='flag-5'>STM32</b>F469NIH6<b class='flag-5'>开发板</b> 学习<b class='flag-5'>板</b>简介

    STM32F4开发板硬件平台简介

    F4 开发板的特点二、ALIENTEK 探索者 STM32F4 开发板资源说明1.硬件资源说明总结前言实践出真知,要想学好 STM32F4,
    发表于 11-21 13:51 44次下载
    <b class='flag-5'>STM32</b>F4<b class='flag-5'>开发板</b><b class='flag-5'>硬件</b>平台简介

    STM32F429开发板用户手册】第8章 STM32F429的终极调试组件Event Recorder

    STM32F429开发板用户手册】第8章 STM32F429的终极调试组件Event Recorder
    发表于 12-04 14:06 17次下载
    【<b class='flag-5'>STM32</b>F429<b class='flag-5'>开发板</b>用户手册】第8章 <b class='flag-5'>STM32</b>F429的终极<b class='flag-5'>调试</b>组件Event Recorder

    STM32F407开发板用户手册】第8章 STM32F407的终极调试组件Event Recorder

    STM32F407开发板用户手册】第8章 STM32F407的终极调试组件Event Recorder
    发表于 12-04 14:21 18次下载
    【<b class='flag-5'>STM32</b>F407<b class='flag-5'>开发板</b>用户手册】第8章 <b class='flag-5'>STM32</b>F407的终极<b class='flag-5'>调试</b>组件Event Recorder

    STM32STM32 F4开发板介绍

    目录01、STM32F4开发板的资源图02、STM32F4开发板板载资源03、STM32F4部分资源说明3.1、JTAG/SWD3.2、
    发表于 12-17 18:14 27次下载
    【<b class='flag-5'>STM32</b>】<b class='flag-5'>STM32</b> F4<b class='flag-5'>开发板</b>介绍

    官方STM32的NUCLEO开发板使用

    官方STM32的NUCLEO开发板使用概述:因工作需求,先买了stm32的NUCLEO开发板做测试,本人使用的是L073RZ这块板子,也是
    发表于 12-27 19:05 8次下载
    官方<b class='flag-5'>STM32</b>的NUCLEO<b class='flag-5'>开发板</b>使用

    AN5093_STM32G4系列硬件开发板入门

    AN5093_STM32G4系列硬件开发板入门
    发表于 11-21 08:11 4次下载
    AN5093_<b class='flag-5'>STM32</b>G4系列<b class='flag-5'>硬件</b><b class='flag-5'>开发板</b>入门

    51/AVR/STM32开发板资料

    51/AVR/STM32开发板资料分享
    发表于 11-30 14:12 10次下载

    NodeMCU开发板的部署及调试

    本章,给大家分享NodeMCU开发板的部署及调试
    的头像 发表于 02-07 14:28 1763次阅读
    NodeMCU<b class='flag-5'>开发板</b>的部署及<b class='flag-5'>调试</b>