关于一个stm32单片机debug问题

最近在做一个项目,需要用stm32单片机对一个十进制数变量进行编码,并保存在数组里面。我写了一个程序,对其进行了debug仿真,但是最终的变量始终不对,并且中间有一个变量始终为0,对此特来向各位论坛里的大神请教。关于仿真和程序结果见下图

0

8个回答

图片说明这样吗

0
yujunkan
yujunkan 哥们,我今天看了一下,好像没有保存到数组里面,数组里面还是0x0000
11 个月之前 回复
HK_JY
灬Change 回复yujunkan: (~ ̄▽ ̄)~
11 个月之前 回复
yujunkan
yujunkan 我得ptintf有问题
11 个月之前 回复
yujunkan
yujunkan 哥,谢谢你了
11 个月之前 回复

这是debug仿真图片
这是十进制数转换为二进制,保存在数组的程序块

0

你好,你的程序有有点看不懂。首先frequence 如果一直为0的话,result其实也是没有变化的。确定你是取低8位中第一位,还是要result的取第一位?因为result是int型,0x01只能取低8位的第一位。比如result为339的时候,pwn_table 得到的是 0x153 & 0x01 = 0x101. 会不会是这里有问题呢?

0
yujunkan
yujunkan 你好,我的程序主要目的是把十进制转换二进制,并保存在一个数组里面。result的值应该是250
11 个月之前 回复

这个应该是软件问题,我也试过,但正常仿真也没什么出错

0

你是想把十进制转换成二进制吗,但while里的算法好像又不是实现这个的,还有第555行,要取最低位的话,应该用按位与&,你用的是逻辑与&&

0
HK_JY
灬Change 回复yujunkan: 那个,你while里是把二进制对应到了result的个十百位上,所以保存到数组里的时候,只有让result对10取余就可以了
11 个月之前 回复
yujunkan
yujunkan 回复HK_JY: 前面感觉应该也不是多余吧,555-556只是把转换好的result放进一个数组里面,前面几行是吧frequence的十进制转换成result的二进制啊
11 个月之前 回复
HK_JY
灬Change 回复yujunkan: 其实你的第555-556行就可以把一个十进制数转换成二进制,并把保存在数组里了,前面写的感觉是多余的
11 个月之前 回复
yujunkan
yujunkan 并且把这个二进制保存在数组里面
11 个月之前 回复
yujunkan
yujunkan 我是想把十进制转换为二进制,大神,请问下while的算法有哪些问题呢,多谢指教
11 个月之前 回复

并且把这个保存在数组里面

0

图片说明我改了一下,不知道是不是你想要的

0

这样写的话k的值会溢出的

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
stm32f0单片机在DEBUG的时候遇到的问题,程序可以下载进单片机,但是单步调试报错并退出keil
在对stm32f030f4芯片进行编程的时候,遇到一个难以跨越的问题,就是程序可以下载进单片机 ,但是单步调试的时候就会卡死在某一环节,要是全速运行的话,还会报错,如下图。operation not possible while the target device is executing.网上百度了一下,没有人和我遇到一样的问题,这个错误的意思是说,“目标设备运行的时候,这个操作不能进行”。为了...
stm32调试遇到问题及解决
一、PB5始终是高电平,导致超声波传感器用不起来。 百度了一下,stm32有些管脚上电默认的功能不是通用的GPIO,比如JTAG与SWD调试管脚,所以如果想要使用这几个管脚作为通用IO口的话就必须将JTAG与SWD功能关闭,并且要开启AFIO时钟。即外设的复用IO。 加上这两句:RCC_APB2PeriphClockCmd(RCC_APBPeriph_AFIO,ENABLE);
STM32调试过程中常见的问题及解决方法
STM32调试过程中常见的问题及解决方法 一、 在“Debug选项卡”下设置好仿真器的类型后,下载程序时却提示“No ULINK Device found.”      解决办法: Keil MDK默认使用ULINK仿真器下载程序,在“Project --->Option for Target 'xxx' --->Utilities选项卡”下把编程所使用的仿真器改为相应的类型即可
对stm32内存理解,查看以及面试题的一些总结(一)
基础知识储备 1、keil中如何调用出map文件,以及map文件的作用 我是拿正点原子的标准工程来使用分析。 如何获得map文件, 双击工程名即可得到map文件。 2、map文件包含哪些东西 1.Section CrossReferences:模块、段(入口)交叉引用;通俗一点就是函数之间互相调用的关系。 2.Removing Unused inputsections from ...
有关stm32的英文翻译
为了方便大家读写程序本人特别对stm32单片机里出现的一些英文缩写进行了总结(未完待续) HSI—(High SpeedInternal Clock Signal)内部高速时钟信号,内置RC振荡器(rc oscillator)。 HSE—(High SpeedExternal Clock Signal)外部高速时钟信号,外部晶振(oscillator)相连。 LSE—(Low Speed E
STM32-面试题及答案
一、选择题 1.Cortex-M处理器采用的架构是(  D  )(A)v4T               (B)v5TE              (C)v6                (D)v72.NVIC可用来表示优先权等级的位数可配置为是(  D  )(A)2                 (B)4          (C)6                 (D)83.Cortex-...
STM32单片机使用SWD(Serial wire debug)模式 下载程序出错问题解决
最近在使用STM32F105单片机做产品,使用SWD接口下载程序,遇到一些问题,得益于网上的一些文章最后得以解决,所以也想把问题解决的过程整理出来,以供出现同类问题的技术人员进行参考,本人没有系统地学习SWD接口下载程序的过程(每天的时间都在赶开发进度,很难静下心来系统地学习一项技术了,惭愧),只是提供一点经验。 问题:使用SWD模式下载程序,遇到 Cannot access Memory (@ ...
stm32硬件调试
STM32的基本系统主要涉及下面几个部分: 一、电源   1)、无论是否使用模拟部分和AD部分,MCU外围出去VCC和GND,VDDA、VSSA、Vref(如果封装有该引脚)都必需要连接,不可悬空;   2)、对于每组对应的VDD和GND都应至少放置一个104的陶瓷电容用于滤波,并接该电容应放置尽量靠近MCU;     3)、用万用表测试供电电压是否正确。调试时最好用数字电源供
单片机的外文文献与翻译
单片机外文与翻译,一般用毕业论文设计时,也可以用空大至少
STM32调试利器之ITM
折腾了许久,终于把 ITM 调试搞定了。首先看看效果图: 是的,你没有看错,以上所有的窗口都是由MDK支持的。这也是为什么我执着于ITM调试的原因了,因为这种调试手段实在是太方便了啊。 相信很多朋友在开发的过程中都会遇到不少的BUG,那么如何定位BUG就成了关键。早期的时候,很多人习惯用printf函数进行开发调试,我也不例外,一直以来我都是把ST-LINK当成一个下载工具。但是当我知道了...
毕业设计单片机英文文献
Introduction of Programmable controllers From a simple heritage, these remarkable systems have evolved to not only replace electromechanical devices, but to solve an ever-increasing array of control problems in both process and nonprocess industries. By all indications, these microprocessor powered giants will continue to break new ground in the automated factory into the 1990s.
STM32单片机工作日记
u8 SD_RecvData(u8*buf,u16 len) { if(SD_GetResponse(0xFE))return 1;//µÈ´ýSD¿¨·¢»ØÊý¾ÝÆðʼÁîÅÆ0xFE while(len--)//¿ªÊ¼½ÓÊÕÊý¾Ý { *buf=SPI1_ReadWriteByte(0xFF);
调试器不能连接到STM32的问题与解决办法
很多人都碰到过调试器不能连接到STM32的问题,不管是IAR的J-Link还是Keil的ULink,或者是ST的ST-Link。出现这个问题时,调试软件会提示不能建立与Cortex-M3的连接,或提示不能下载程序,或提示找不到要调试的设备等。 这样的问题都是发生在调试那些可以在
STM32单片机调试风洞过程中所遇到的问题总结
PID算法的原理相信大家手里有资料而且也都看过了吧,下面我就来和大家分享一下我在调风洞得过程中所遇到的问题以及原因,如果有错误的地方还希望大家指出来。 我所用到的单片机是STM32单片机,芯片型号是STM32F407ZET6. 刚开始调的时候不管怎么样调比例调积分都是一下子冲到顶然后又一下子冲到底,后来仔细想了一下,原因就是PID以及超声波模块更新的速度太慢,当更新时,积累的量已经过多,所以始...
J-Link烧写STM32失败的问题
使用F205芯片,烧写时,出现各种问题——大致如下: 1. stm32 programming failed @ address .... 2. stm32 erase failed 3. Could not power up debug port .... 4. PC ..... 经过各种尝试,解决后,记录下 1. 出现erase failed时,可能flash被写保护了,可
keil中STM32设置DEBUG起始地址
在做IAP的时候,分两部分 Bootloader部分起始是0x8000000 APP部分是0x08008000 调试的时候默认设置不能直接写入0x08008000部分 所以作一下设置即可直接DOWNLOAD分别DEBUG APP部分KEIL设置 简单两步即可设置,其实设置的是.scf文件的地址分布
带你学STM32单片机,十本非常受欢迎的STM32图书推荐
例说STM32 本书由浅入深,带领大家进入STM32的世界。全书分3篇,第一篇为硬件篇,介绍本书的实验平台;第二篇为软件篇,介绍STM32开发软件的使用以及一些下载调试的技巧,并详细介绍了几个常用的系统文件(程序);第三篇为实践篇,通过28个实例(绝大部分是直接操作寄存器完成的)带领大家一步步深入STM32的学习。   基于MDK的STM32处理器开发应用 本书介绍了基于MDK的STM32
STM32的音乐播放器程序,亲测可用
STM32的音乐播放器程序,亲测可用。内有详细的注释和文档。很好的学习资料。
STM32在KEIL平台反汇编代码分析
不同的平台的汇编代码是不一样的,最早的汇编在50年代就发明了,比很多人的父母的年龄都大,老掉牙,不用学习怎么写汇编。一个公司有一个人知道怎么写汇编就够了。但要学习读汇编 为什么学习汇编?   1 性能 直接翻译为机器语言,性能最高。优秀的C语言效率只能达到汇编的80%左右。其他高级语言跟汇编一比差得更远。语言越高级性能越差。很多bootloader和BIOS用汇编写,汇编操作的是电脑,手机刚
关于STM32英文解释
FSMC控制器 : FSMC(Flexible Static Memory Controller,可变静态存储控制器)是STM32系列采用的一种新型的存储器扩展技术。在外部存储器扩展方面具有独特的优势,可根据系统的应用需要,方便地进行不同类型大容量静态存储器的扩展。 RNG : 随机数发生器 hash寄存器 : 散列寄存器映射 CRYP 寄存器映射...
关于单片机内存溢出的查找方法
我所知道的内存溢出分为两种,一种是数组溢出,一种是堆栈溢出。 一种内存溢出的定位方法,一般内存溢出多为数组,先查找到内存溢出的变量,然后查看mp1地址映射文件,按照序列,以溢出的变量为基地址,向上查找,找数组,然后在代码中查到该数组的地址填充,大约查找3至5个数组,如果均没有发现溢出,使用下面的方法。   另一种内存溢出的定位方法,类似于pcb板的割线,利用while死循环进行定位,这种方法
STM32关于BOOT0和BOOT1设置,去掉Debug后完成硬件独立运行。
BOOT0和BOOT1STM32三种启动模式对应的存储介质均是芯片内置的,它们是:1)用户闪存 = 芯片内置的 Flash。2)SRAM = 芯片内置的 RAM区,就是内存啦。3)系统存储器= 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段 Bootloader,就是通常说的 ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个 ROM区。在每个 STM32的芯片上都有两...
单片机面试的问题1
你所知道的单片机的品牌 ATmel、Philips(飞利浦)、Windond(华邦)、intel(因特尔)、Siemens(西门子) STC、凌阳、FREESCALE(飞思卡尔),Micrichip,TOSHIBA,TI,ST,SILICON,SAMSUMG,ELAN,富士通,TOLTEK 用熟悉的单片机写一个软件延时10ms的程序 void delay10ms() { uint i,
学习STM32单片机,从菜鸟到牛人就是这样简单
我想说,为了学习单片机而去学习单片机的思路不对。   你问,如何系统地入门学习stm32?   本身就是一个错误的问题。假如你会使用8051 , 会写C语言,那么STM32本身并不需要刻意的学习。   你要考虑的是, 我可以用STM32实现什么?   为什么使用STM32而不是8051? 是因为51的频率太低,无法满足计算需求?是51的管脚太少,无法满足众多外设的IO? 是
使用CoIDE调试STM32单片机
这一段时间找到CoIDE,发现其真的挺好用,编辑界面比Keil功能强大。因此把实际操作过程记录下来。 CoIDE  是CooCox专业打造的一款免费的ARMCortexMCU嵌入式集成开发环境(Integrated Development Environment,IDE)。CoIDE集成了CoBuilder和CoDebugger,适用于编译、烧写及调试嵌入式系统应用。它为ARM Cortex
STM32开发笔记38: 单片机内部Flash的读写
单片机型号:STM32F070F6P6 本文介绍应用C语言进行单片机内部Flash的读写技巧,将从查看文档开始,到最终完成完整的程序。 单片机型号:STM32F070F6P6 步骤如下: 1、查看文档《STM32F030x4/x6/x8/xC and STM32F070x6/xB advanced ARM®-based 32-bit MCUs》确认其Flash的内部结构。 2、查看文...
单片机英文参考文献有中文对照
单片机英文参考文献 51单片机 英文文献 毕业设计 中英文对照单片机英文参考文献 51单片机 英文文献 毕业设计 中英文对照单片机英文参考文献 51单片机 英文文献 毕业设计 中英文对照
STM32死机 调试时进入HardFault_Handler定位错误的方法
今天早上电脑又重新恢复了一次系统,虽然能感觉现在的微软对Windows10的态度是越来越趋向于维持其稳定而不是添加更多的新功能,但是windows10还是有着一些大大小小的bug。不过好在电脑死机不想找问题可以恢复或者重装系统,但是自己写的程序出了问题只能自己找问题。 STM32在运行不正常的时候我们一般会进行调试看看问题出在了哪里。但是当STM32卡死后进行调试的时候会发现进入到了一个Hard...
用qt编写上位机与stm32通信
好的文章 1、Qt5.5.1实现通用串口程序https://www.2cto.com/kf/201607/524028.html 2、QT实现串口通信 https://www.2cto.com/kf/201610/558768.html 资源下载:https://download.csdn.net/download/hellybobo/9950904?web=web 本文采用的的开发环境是...
STM32内部RAM在线调试配置方法及详细说明(基于Keil开发工具)
推荐 分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang 我的网站:https://www.strongerhuang.com 我的知乎:https://www.zhihu.com/people/strongerHuang.com Ⅰ、写在前面...
stm32 非debug模式程序无法运行
最近负责一个项目,用到stm32f4的一款高性能芯片。研发过程中遇到一个很诡异的现象,前前后后折腾了两三天,最后才搞定。由于是新手,经验不足,排故过程很纠结~~ 现象如下: 1.采用JLINK下载程序后,断电让其上电重新启动,发现有时可以正常运行,有时候无法正常运行,大约每两、三次就有一次无法正常上电启动。 2.通过JLINK调试程序,每次均正常运行。太诡异了! 发现问题后开始定位原因。首先考虑是...
STM32单片机实现二维码显示
最近工作中的项目需要LCD显示二维码,目前的需求较为简单,只需要显示一个二维码演示功能。短期内由上位机提供图片内容,所以单片机只需要显示图片的功能就ok了。鉴于是通讯设备,图片的内容较大,肯定影响使用体验,而且操作不灵活。接下来,我就想如何实现单片机自己生产二维码,网上查了一些资料,找到很多开源的库,qrencode、Zbar、Zint、ZiXing。初步评估了一下,感觉还是qrencode比较精简,易于嵌入式移植。上传的工程是单片机STM32ZET6用红牛开发板显示的,工程用MDK4.72编译OK。
STM32之调试支持(DBG)
STM32F10xxx使用Cortex™-M3内核,该内核内含硬件调试模块,支持复杂的调试操作。硬件调试模块允许内核在取指(指令断点)或访问数据(数据断点)时停止。内核停止时,内核的内部状态和系统的外部状态都是可以查询的。完成查询后,内核和外设可以被复原,程序将继续执行。        SWJ调试端口(serial wire and JTAG) STM32F10xxx内核集成了串行/JTAG调
STM32F103之IAR调试配置
本篇博文最后修改时间:2017年09月03日 16:00。 一、简介 本文以STM32F103为例,介绍IAR for RAM 7.20如何配置STM32F103调试工程。 二、实验平台 电脑平台:Windows7 64位旗舰 编译软件:IAR for RAM 7.20 硬件平台:STM32F103 烧录器:ST-LINK ...
基于STM32单片机的门禁控制系统-软件
个人毕业设计,可以实现4*4矩阵按键控制、射频识别、红外控制门禁状态,使用LCD12864作为显示屏,程序已经调通的成品,可以用作参考扩展学习。
关于keil uvision5 Debug调试和调试STM32HAL库出现的问题
在使用Keil5调试时,发现点击Debug session调试按钮后,**调试箭头发现不是指在main函数体而是指向disassembly汇编代码区**,这就导致我们无法调试我们的代码。以下是我的解决方法: 1.点击options for target魔法棒配置目标,选择Debug->再如下图所示勾选红框部分。 2.再选择Output->勾选Debug information-&g...
stm32 无初值指针变量导致程序跑飞
//定时器3中断服务程序   void TIM3_IRQHandler(void) {           if(TIM3->SR&0X0001)//溢出中断 { char str[5]; //LED1=!LED1;     //TIM3->CR1 &= 0xfe; //关闭定时器3                rx_all += rx_count;        
stm32死机问题的处理
死机原理 基本概念: 连接寄存器LR:调动子程序时,自动存储下一次返回的地址,其实就是最近调用的那一次函数的地址。 死机的过程: 这里我们最需要关注的是第一步入栈: 其中8个寄存器的顺序是 其中出现异常时LR里面的值是固定的 最后更新堆栈指针,我们根据最后使用的堆栈里面的内容,就可以知道出问题时的最后现场。 死机定位 思路简单来讲就是: 找到死机时候的lr寄存器,然后根据lr寄存器的值,...
STM32单片机串口功能实现
  STM32学习笔记心得四: =============串口通信================ 1.通信方式   处理器和外围设备进行通信的方式:并行通信和串行通信      并行通信:   传输原理:数据的每一个位都在同时传输   优点:    速度快   缺点:    占用很多引脚资源      串行通信:   传输原理:数据按位的顺序传输   优点:    占用引脚少   缺点:...
STM32调试DEBUG时,需要知道的知识!
学习STM32开发,肯定少不了DEBUG调试这一步骤。那么,本文带你了解一下这个调试相关的知识。本文以STM32F1、Cortex-M3为例,其它系列芯片或内核,原理相同...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 关于大数据培训 关于云计算