关于一个stm32单片机debug问题

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

0

8个回答

图片说明这样吗

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

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

0

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

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

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

0

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

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

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

0

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

0

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

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
stm32f0单片机在DEBUG的时候遇到的问题,程序可以下载进单片机,但是单步调试报错并退出keil
在对stm32f030f4芯片进行编程的时候,遇到一个难以跨越的问题,就是程序可以下载进单片机 ,但是单步调试的时候就会卡死在某一环节,要是全速运行的话,还会报错,如下图。operation not possible while the target device is executing.网上百度了一下,没有人和我遇到一样的问题,这个错误的意思是说,“目标设备运行的时候,这个操作不能进行”。为了...
STM32小问题总结
STM32知识点总结n数字类型nu8 是 unsigned charnu16 是 unsigned shortnu32 是 unsigned intnu8 * 就表示指向unsigned char(无符号字符类型)的指针,属于指针类型nn
stm32调试遇到问题及解决
一、PB5始终是高电平,导致超声波传感器用不起来。n百度了一下,stm32有些管脚上电默认的功能不是通用的GPIO,比如JTAG与SWD调试管脚,所以如果想要使用这几个管脚作为通用IO口的话就必须将JTAG与SWD功能关闭,并且要开启AFIO时钟。即外设的复用IO。nnn加上这两句:RCC_APB2PeriphClockCmd(RCC_APBPeriph_AFIO,ENABLE);
对stm32内存理解,查看以及面试题的一些总结(一)
基础知识储备nn1、keil中如何调用出map文件,以及map文件的作用nn我是拿正点原子的标准工程来使用分析。nn如何获得map文件,nnnn双击工程名即可得到map文件。nn2、map文件包含哪些东西nn1.Section CrossReferences:模块、段(入口)交叉引用;通俗一点就是函数之间互相调用的关系。nn2.Removing Unused inputsections from ...
有关stm32的英文翻译
为了方便大家读写程序本人特别对stm32单片机里出现的一些英文缩写进行了总结(未完待续)rnHSI—(High SpeedInternal Clock Signal)内部高速时钟信号,内置RC振荡器(rc oscillator)。rnHSE—(High SpeedExternal Clock Signal)外部高速时钟信号,外部晶振(oscillator)相连。rnLSE—(Low Speed E
关于stm32软复位的一些知识点搜集
最近产品要加软复位的功能,在网上搜集了一下,有以下结果:nnvoid Sys_Soft_Reset(void)n{n SCB->AIRCR =0X05FA0000|(u32)0x04; n} ,这样的一个函数就可以实现软复位的效果,具体这样做的依据是什么,搜集了一些知识点,可能和这个函数沾边,也可能不沾边,但是都是软件复位有关的一些知识点,因此粘出来,分享一下,如果大家...
单片机的外文文献与翻译
单片机外文与翻译,一般用毕业论文设计时,也可以用空大至少
STM32单片机使用SWD(Serial wire debug)模式 下载程序出错问题解决
最近在使用STM32F105单片机做产品,使用SWD接口下载程序,遇到一些问题,得益于网上的一些文章最后得以解决,所以也想把问题解决的过程整理出来,以供出现同类问题的技术人员进行参考,本人没有系统地学习SWD接口下载程序的过程(每天的时间都在赶开发进度,很难静下心来系统地学习一项技术了,惭愧),只是提供一点经验。rn问题:使用SWD模式下载程序,遇到rnCannot access Memory (@ ...
STM32调试利器之ITM
折腾了许久,终于把 ITM 调试搞定了。首先看看效果图:nnnnn是的,你没有看错,以上所有的窗口都是由MDK支持的。这也是为什么我执着于ITM调试的原因了,因为这种调试手段实在是太方便了啊。n相信很多朋友在开发的过程中都会遇到不少的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单片机调试风洞过程中所遇到的问题总结
PID算法的原理相信大家手里有资料而且也都看过了吧,下面我就来和大家分享一下我在调风洞得过程中所遇到的问题以及原因,如果有错误的地方还希望大家指出来。nn我所用到的单片机是STM32单片机,芯片型号是STM32F407ZET6.nn刚开始调的时候不管怎么样调比例调积分都是一下子冲到顶然后又一下子冲到底,后来仔细想了一下,原因就是PID以及超声波模块更新的速度太慢,当更新时,积累的量已经过多,所以始...
STM32的音乐播放器程序,亲测可用
STM32的音乐播放器程序,亲测可用。内有详细的注释和文档。很好的学习资料。
关于STM32英文解释
FSMC控制器 : FSMC(Flexible Static Memory Controller,可变静态存储控制器)是STM32系列采用的一种新型的存储器扩展技术。在外部存储器扩展方面具有独特的优势,可根据系统的应用需要,方便地进行不同类型大容量静态存储器的扩展。nnnnRNG : 随机数发生器nnhash寄存器 : 散列寄存器映射nnCRYP 寄存器映射...
嵌入式stm32--编程所遇(各类错误 )--凡事靠自己,找bug,别人能帮到太少了~~~
问题1:Error[Li006]: duplicate definitions for “gImage_l2”; in “C:\Users\moon\Desktop\IAR–practice\test5(LCD)\test5–yejing\EWARM\STM32F4xx-Nucleo\Obj\lcd.o”, and “C:\Users\moon\ 今天在进行代码测试编译时出现了重复定义的错误,提示在
STM32单片机工作日记
u8 SD_RecvData(u8*buf,u16 len)n{ n if(SD_GetResponse(0xFE))return 1;//µÈ´ýSD¿¨·¢»ØÊý¾ÝÆðʼÁîÅÆ0xFEn while(len--)//¿ªÊ¼½ÓÊÕÊý¾Ýn {n *buf=SPI1_ReadWriteByte(0xFF);
J-Link烧写STM32失败的问题
使用F205芯片,烧写时,出现各种问题——大致如下:rn1. stm32 programming failed @ address ....rn2. stm32 erase failedrn3. Could not power up debug port ....rn4. PC .....rnrnrn经过各种尝试,解决后,记录下rn1. 出现erase failed时,可能flash被写保护了,可
关于单片机内存溢出的查找方法
我所知道的内存溢出分为两种,一种是数组溢出,一种是堆栈溢出。n一种内存溢出的定位方法,一般内存溢出多为数组,先查找到内存溢出的变量,然后查看mp1地址映射文件,按照序列,以溢出的变量为基地址,向上查找,找数组,然后在代码中查到该数组的地址填充,大约查找3至5个数组,如果均没有发现溢出,使用下面的方法。n n另一种内存溢出的定位方法,类似于pcb板的割线,利用while死循环进行定位,这种方法
单片机软件复位和硬件复位的实现和个人总结的区别
微处理器复位方法:用硬件引脚RESET的复位方法;用看门狗的复位方法;自己程序控制的复位方法(本文方法,叫软件复位)。软件复位实现方法首先声明一个函数指针,指向复位后要开始执行指令的位置:void (*app_start)(void) = 0x0000;可以根据具体微处理器复位后的位置,修改后边的地址。之后,在自己的程序中想复位的地方调用app_start(); 也就是跳到0x0000位置执行指...
Stm32单片机读书报告——定时器
STM32的时钟系统相当的复杂,包含了5个时钟源,分别是HSI HSE LSI LSE PLL,HSI是高速内部时钟、RC振荡器,频率为8MHz,HSE是高速外部时钟,即晶振,晶振频率为8MHz。LSI为低速内部时钟、RC振荡器,频率40kHz,LSE为低速外部时钟,接32.768kHz晶振,作为RTC时钟源。PLL为锁相环倍频输出,最大不超过72M。在STM32Cube中结构如下:有关时钟部分的...
使用CoIDE调试STM32单片机
这一段时间找到CoIDE,发现其真的挺好用,编辑界面比Keil功能强大。因此把实际操作过程记录下来。nnCoIDE  是CooCox专业打造的一款免费的ARMCortexMCU嵌入式集成开发环境(Integrated Development Environment,IDE)。CoIDE集成了CoBuilder和CoDebugger,适用于编译、烧写及调试嵌入式系统应用。它为ARM Cortex
单片机英文参考文献有中文对照
单片机英文参考文献 51单片机 英文文献 毕业设计 中英文对照单片机英文参考文献 51单片机 英文文献 毕业设计 中英文对照单片机英文参考文献 51单片机 英文文献 毕业设计 中英文对照
STM32高级开发(11)-使用GDB调试你的工程
在GNU编译器中,GDB无疑起着无足轻重的位置,常言有道:写工程3分靠写,7分靠调。GDB作为GNU编译器下的标准调试工具,在我们的项目编写即调试过程中会被平凡的使用到。而由于我们在IDE环境下娇生惯养出来的习惯,我们可能不太容易上手一个用命令行为主要操作和显示形式的调试器。所以在这篇中我们会为大家详细的讲解GDB工具的使用,来让大家快速的入门。
stm32f103插拔pc端的串口引起的问题及解决办法
stm32f103串口和pc端串口进行相连,打印调试信息,插拔PC端的串口后发现程序执行异常,大循环不跑了,一直不停的进入串口接收中断服务程序中。进一步调试发现是触发了中断:USART_FLAG_ORE。nn nn解决办法:nn增加以下处理代码:nn...
STM32L系列低功耗调试《实用篇》
            不知道大家有没有和我一样的经历,看官方数据手册,什么休眠2uA,停机多少nA,这么换成自己调试的时候就是上百uA    了,差的不是一个数量级,有木有这样的感受~           最近在做一个NB项目,用到了如下外设: 外部唤醒引脚,串口,SPI,DMA,ADC,RTC,模拟IIC等外设,可以说是一个综合型项    目了吧,    最后调试下来整机<10uA待机功...
STM32两种输出调试信息的方法
方式一:基于SEGGER的RTT方式,可直接使用jlink连接到目标板即可看到调试信息。nn优点:速度很快,即使是在中断中调用也没有问题,在带系统的程序中也不需要开启临界保护;nn缺点:需要加入两个SEGGER提供的.c文件及头文件,不能输出中文和浮点(原因可能是会降低速度);nn硬件连接:jlink的SWDIO引脚必须和目标板连接,其它按照标准使用即可。nn需要的两个.c文件可在jlink驱动安...
keil中STM32设置DEBUG起始地址
在做IAP的时候,分两部分rnBootloader部分起始是0x8000000rnAPP部分是0x08008000rn调试的时候默认设置不能直接写入0x08008000部分rn所以作一下设置即可直接DOWNLOAD分别DEBUGrnAPP部分KEIL设置rnrnrnrnrnrnrn简单两步即可设置,其实设置的是.scf文件的地址分布
关于keil uvision5 Debug调试和调试STM32HAL库出现的问题
在使用Keil5调试时,发现点击Debug session调试按钮后,**调试箭头发现不是指在main函数体而是指向disassembly汇编代码区**,这就导致我们无法调试我们的代码。以下是我的解决方法:rnrn1.点击options for target魔法棒配置目标,选择Debug->再如下图所示勾选红框部分。rnrn2.再选择Output->勾选Debug information-&g...
stm32处理器调试模式下运行正常,上电自启动后运行不正常的故障排查分析
最近负责一个项目,用到stm32f4的一款高性能芯片。研发过程中遇到一个很诡异的现象,前前后后折腾了两三天,最后才搞定。由于是新手,经验不足,排故过程很纠结~~n现象如下:n1.采用JLINK下载程序后,断电让其上电重新启动,发现有时可以正常运行,有时候无法正常运行,大约每两、三次就有一次无法正常上电启动。n2.通过JLINK调试程序,每次均正常运行。太诡异了!n发现问题后开始定位原因。首
关于stm32系列资料介绍
stm32介绍,关于stm32单片机的一些资料
STM32一氧化碳报警
冬天家里需要生火,难免会有一氧化碳产生,为了安全做一个简单的玩具rn某宝买了几个探头rnrn也不知道准确不准确rn开始制作rn没有电路图自己飞线接的。。。rn使用ADC1的通道0、1;采集QM2或QM9的模拟信号 PA0,PA1rn模拟I2C显示0.96寸液晶显示PA9,PA10rn蜂鸣器使用低电平有效PB8rn按键全部是低有效rn大按键PB15rn小按键PB4、PB5、PB6rnrn探头供电5V,蜂鸣器供电3.3Vrn编写...
STM32程序死机问题分析过程- printf导致死机的解决方法。
问题的背景:公司的一个客户,应该算是一家创业企业,偶尔会让我们帮他们下stm32的驱动程序,具体的应用产需还是在自己写的。驱动基本都写好了,也都交付给他们了。最近他们在写应用程序的使用遇到了一个问题。nn问题描述:申请了一个很大的全局数组,如下:nnn#define MAXDOORNUMBER 220nDOOR_INFO doorInfo[MAXDOORNUMBER];nn程序运行起来会莫名死机...
基于单片机的陀螺仪应用软件
一个很好陀螺仪应用软件,可以求出精确方向的软件,基于C语言写的,带有补偿程序,看得懂就是你的知识了
关于STM32的基本知识
本文参考:原子和野火STM32教学视频nn1、STM32是“意法半导体”生产的基于“ARM公司Cortex-M3内核”的32位高性能MCU。nnST----意法半导体,即SOC厂商(芯片制造商)。ARM----IP厂商,负责芯片内核设计的公司nnM-----Microelectronics的缩写,指微控制器。微处理器通常指计算机CPU。nn32------指它是一个32位的微控制器。nn注意:51...
STM32驱动max6675测温的测试例程
STM32F103 驱动max6675模块测量k型热电偶温度的测试例程。用到的资源有串口1和SPI1
关于温湿度检测的外文翻译
基于单片的温湿度智能检测系统 温湿度外文文献
stm32 音频输出程序
用STM32F03单片机采集电脑音频信号,做FFT变换得到频率谱,用5通道的LED灯(每个通道30个LED灯)显示频谱的幅值。
STM32开发笔记38: 单片机内部Flash的读写
单片机型号:STM32F070F6P6nn本文介绍应用C语言进行单片机内部Flash的读写技巧,将从查看文档开始,到最终完成完整的程序。nn单片机型号:STM32F070F6P6nn步骤如下:nn1、查看文档《STM32F030x4/x6/x8/xC and STM32F070x6/xB advanced ARM®-based 32-bit MCUs》确认其Flash的内部结构。nnnn2、查看文...
002_STM32程序移植之_DHT11
1. 测试环境:STM32C8T6nn2. 测试模块:DHT11温湿度模块nn3. 测试接口:nn1. DHT11温湿度模块接口:nnDS1302引脚 ---------单片机引脚nnVCC--------------------3.3VnnGND-------------------GNDnnDATA-------------------PA5nnnn2. 串口使用串口一,波特率9600nn单...
stm32最全的资料书
里面是一步一步学习stm32的学习方法,另外实验介绍很全面。可以购买stm32F4板子,配套学习
stm32死机问题的处理
死机原理n基本概念:nn连接寄存器LR:调动子程序时,自动存储下一次返回的地址,其实就是最近调用的那一次函数的地址。n死机的过程:nn这里我们最需要关注的是第一步入栈:n其中8个寄存器的顺序是nnn其中出现异常时LR里面的值是固定的nn最后更新堆栈指针,我们根据最后使用的堆栈里面的内容,就可以知道出问题时的最后现场。n死机定位n思路简单来讲就是:n找到死机时候的lr寄存器,然后根据lr寄存器的值,...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 关于大数据培训 关于云计算