关于一个stm32单片机debug问题

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

0

8个回答

图片说明这样吗

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

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

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

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

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

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

0

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

0

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

0

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

0

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

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
stm32f0单片机在DEBUG的时候遇到的问题,程序可以下载进单片机,但是单步调试报错并退出keil
在对stm32f030f4芯片进行编程的时候,遇到一个难以跨越的问题,就是程序可以下载进单片机 ,但是单步调试的时候就会卡死在某一环节,要是全速运行的话,还会报错,如下图。operation not possible while the target device is executing.网上百度了一下,没有人和我遇到一样的问题,这个错误的意思是说,“目标设备运行的时候,这个操作不能进行”。为了...
STM32小问题总结
STM32知识点总结 数字类型 u8 是 unsigned char u16 是 unsigned short u32 是 unsigned int u8 * 就表示指向unsigned char(无符号字符类型)的指针,属于指针类型
有关stm32的英文翻译
为了方便大家读写程序本人特别对stm32单片机里出现的一些英文缩写进行了总结(未完待续) HSI—(High SpeedInternal Clock Signal)内部高速时钟信号,内置RC振荡器(rc oscillator)。 HSE—(High SpeedExternal Clock Signal)外部高速时钟信号,外部晶振(oscillator)相连。 LSE—(Low Speed E
stm32调试遇到问题及解决
一、PB5始终是高电平,导致超声波传感器用不起来。 百度了一下,stm32有些管脚上电默认的功能不是通用的GPIO,比如JTAG与SWD调试管脚,所以如果想要使用这几个管脚作为通用IO口的话就必须将JTAG与SWD功能关闭,并且要开启AFIO时钟。即外设的复用IO。 加上这两句:RCC_APB2PeriphClockCmd(RCC_APBPeriph_AFIO,ENABLE);
STM32单片机使用SWD(Serial wire debug)模式 下载程序出错问题解决
最近在使用STM32F105单片机做产品,使用SWD接口下载程序,遇到一些问题,得益于网上的一些文章最后得以解决,所以也想把问题解决的过程整理出来,以供出现同类问题的技术人员进行参考,本人没有系统地学习SWD接口下载程序的过程(每天的时间都在赶开发进度,很难静下心来系统地学习一项技术了,惭愧),只是提供一点经验。 问题:使用SWD模式下载程序,遇到 Cannot access Memory (@ ...
基于RS422总线的单片机多机通讯接口的设计与实现
基于RS422总线的单片机多机通讯接口的设计与实现
对stm32内存理解,查看以及面试题的一些总结(一)
基础知识储备 1、keil中如何调用出map文件,以及map文件的作用 我是拿正点原子的标准工程来使用分析。 如何获得map文件, 双击工程名即可得到map文件。 2、map文件包含哪些东西 1.Section CrossReferences:模块、段(入口)交叉引用;通俗一点就是函数之间互相调用的关系。 2.Removing Unused inputsections from ...
关于stm32软复位的一些知识点搜集
最近产品要加软复位的功能,在网上搜集了一下,有以下结果: void Sys_Soft_Reset(void) { SCB->AIRCR =0X05FA0000|(u32)0x04; } ,这样的一个函数就可以实现软复位的效果,具体这样做的依据是什么,搜集了一些知识点,可能和这个函数沾边,也可能不沾边,但是都是软件复位有关的一些知识点,因此粘出来,分享一下,如果大家...
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单片机调试风洞过程中所遇到的问题总结
PID算法的原理相信大家手里有资料而且也都看过了吧,下面我就来和大家分享一下我在调风洞得过程中所遇到的问题以及原因,如果有错误的地方还希望大家指出来。 我所用到的单片机是STM32单片机,芯片型号是STM32F407ZET6. 刚开始调的时候不管怎么样调比例调积分都是一下子冲到顶然后又一下子冲到底,后来仔细想了一下,原因就是PID以及超声波模块更新的速度太慢,当更新时,积累的量已经过多,所以始...
STM32调试时无法正常进行配置晶振
更新了IAR软件,工程配置文件存在不兼容问题,让人郁闷的是配置文件基本上需要重新设置,包括编译、链接选项、调试设置等。。。之前的代码遇到一个麻烦的问题,现象是之前时钟配置都正常,现在调试时无法正常运行。代码跟踪查找到晶振启振问题,然而板子里面的boot loader是能正常运行的,jlink烧写进去的程序就不能了,比较奇怪。查找配置选项,包含编译设置,宏定义,库设置,链接设置,向量表设置,,,然而都
stm32软件仿真调试(带源码)
下面是一个单片机STM32RCT6的PA8,PA9,PA10引脚输出PWM波形的仿真步骤,此外还展示了软件运行过程,如何查看全局变量的实时数据。每一步我都做了截图,大家照着一步步来,请大家放心参考! 1.点target图标,如下: 2.选择好单片机芯片的型号:我选的STM32RCT6型号,大家可以根据自己手上stm32开发板的型号来选择 3.外部晶振频率的选择:8M...
STM32单片机工作日记
u8 SD_RecvData(u8*buf,u16 len) { if(SD_GetResponse(0xFE))return 1;//µÈ´ýSD¿¨·¢»ØÊý¾ÝÆðʼÁîÅÆ0xFE while(len--)//¿ªÊ¼½ÓÊÕÊý¾Ý { *buf=SPI1_ReadWriteByte(0xFF);
STM32开发笔记38: 单片机内部Flash的读写
单片机型号:STM32F070F6P6 本文介绍应用C语言进行单片机内部Flash的读写技巧,将从查看文档开始,到最终完成完整的程序。 单片机型号:STM32F070F6P6 步骤如下: 1、查看文档《STM32F030x4/x6/x8/xC and STM32F070x6/xB advanced ARM®-based 32-bit MCUs》确认其Flash的内部结构。 2、查看文...
使用CoIDE调试STM32单片机
这一段时间找到CoIDE,发现其真的挺好用,编辑界面比Keil功能强大。因此把实际操作过程记录下来。 CoIDE  是CooCox专业打造的一款免费的ARMCortexMCU嵌入式集成开发环境(Integrated Development Environment,IDE)。CoIDE集成了CoBuilder和CoDebugger,适用于编译、烧写及调试嵌入式系统应用。它为ARM Cortex
stm32处理器调试模式下运行正常,上电自启动后运行不正常的故障排查分析
最近负责一个项目,用到stm32f4的一款高性能芯片。研发过程中遇到一个很诡异的现象,前前后后折腾了两三天,最后才搞定。由于是新手,经验不足,排故过程很纠结~~ 现象如下: 1.采用JLINK下载程序后,断电让其上电重新启动,发现有时可以正常运行,有时候无法正常运行,大约每两、三次就有一次无法正常上电启动。 2.通过JLINK调试程序,每次均正常运行。太诡异了! 发现问题后开始定位原因。首
Stm32单片机读书报告——定时器
STM32的时钟系统相当的复杂,包含了5个时钟源,分别是HSI HSE LSI LSE PLL,HSI是高速内部时钟、RC振荡器,频率为8MHz,HSE是高速外部时钟,即晶振,晶振频率为8MHz。LSI为低速内部时钟、RC振荡器,频率40kHz,LSE为低速外部时钟,接32.768kHz晶振,作为RTC时钟源。PLL为锁相环倍频输出,最大不超过72M。在STM32Cube中结构如下:有关时钟部分的...
网络技术学习心得
1.dynamips做两台路由器相连实验时serial接口很快down掉,刚开始还是UP 过几秒钟就down,这种问题通常是由于软件不兼容引起的,比如说,在安装Dr.COM宽带认证客户端这个软件时会自动安装Winpcap3.0,dynamips 不能够使用winpcap3.0,两个软件无论先装哪一个都会有问题。 2.VMWare Workstation 虚拟机软件有三种n...
单片机英文参考文献有中文对照
单片机英文参考文献 51单片机 英文文献 毕业设计 中英文对照单片机英文参考文献 51单片机 英文文献 毕业设计 中英文对照单片机英文参考文献 51单片机 英文文献 毕业设计 中英文对照
关于STM32英文解释
FSMC控制器 : FSMC(Flexible Static Memory Controller,可变静态存储控制器)是STM32系列采用的一种新型的存储器扩展技术。在外部存储器扩展方面具有独特的优势,可根据系统的应用需要,方便地进行不同类型大容量静态存储器的扩展。 RNG : 随机数发生器 hash寄存器 : 散列寄存器映射 CRYP 寄存器映射...
STM32调试利器之ITM
折腾了许久,终于把 ITM 调试搞定了。首先看看效果图: 是的,你没有看错,以上所有的窗口都是由MDK支持的。这也是为什么我执着于ITM调试的原因了,因为这种调试手段实在是太方便了啊。 相信很多朋友在开发的过程中都会遇到不少的BUG,那么如何定位BUG就成了关键。早期的时候,很多人习惯用printf函数进行开发调试,我也不例外,一直以来我都是把ST-LINK当成一个下载工具。但是当我知道了...
关于STM32的基本知识
本文参考:原子和野火STM32教学视频 1、STM32是“意法半导体”生产的基于“ARM公司Cortex-M3内核”的32位高性能MCU。 ST----意法半导体,即SOC厂商(芯片制造商)。ARM----IP厂商,负责芯片内核设计的公司 M-----Microelectronics的缩写,指微控制器。微处理器通常指计算机CPU。 32------指它是一个32位的微控制器。 注意:51...
STM32学习中遇到的问题-(1)跑马灯的实现
基于正点原子mini开发板  STM32F103RCT6 基础几乎为零,很多知识都忘记了,从头开始学起。 依据"正点原子教程视频,零死角玩转STM32,STM32不完全手册,STM32F103固件函数库,STM32中文参考手册,STM32F10X数据手册"进行学习。 主要要自己进行编写的有,main.c,led.c,led.h 首先写led.h  这一部分为led.c的头文件,必不可少,代
算法移植到STM32单片机中会遇到的一些问题
    最近完成了一些算法,需要移植到STM32F4系列的板子上用作实际工程,其中遇到了许多的问题,下面记录一些调试bug的经验记录。1、编译没有问题,但是调试运行时却会进入到某一函数无法运行,之后跳到内存出错的无限循环保护程序中。这样的问题一般是内存溢出的问题,F4的板子自带的内存空间是192k,但是在跑大一些的算法或者算法需要处理的文件较多的情况下,内存也会不够用,我这里的解决方法是使用外扩的...
关于stm32系列资料介绍
stm32介绍,关于stm32单片机的一些资料
STM32学习-keil 调试问题1:单步可以执行 全速运行不可以
描述:keil5 +stm32 使用IIC读数在仿真时点击工具栏里的view选择下面的periodict window update参考:http://bbs.21ic.com/icview-1706852-1-1.html
keil中STM32设置DEBUG起始地址
在做IAP的时候,分两部分 Bootloader部分起始是0x8000000 APP部分是0x08008000 调试的时候默认设置不能直接写入0x08008000部分 所以作一下设置即可直接DOWNLOAD分别DEBUG APP部分KEIL设置 简单两步即可设置,其实设置的是.scf文件的地址分布
关于单片机内存溢出的查找方法
我所知道的内存溢出分为两种,一种是数组溢出,一种是堆栈溢出。 一种内存溢出的定位方法,一般内存溢出多为数组,先查找到内存溢出的变量,然后查看mp1地址映射文件,按照序列,以溢出的变量为基地址,向上查找,找数组,然后在代码中查到该数组的地址填充,大约查找3至5个数组,如果均没有发现溢出,使用下面的方法。   另一种内存溢出的定位方法,类似于pcb板的割线,利用while死循环进行定位,这种方法
uvision不连接硬件使用模拟器调试STMF32F10X
option: 1.target: 原来 irom1:0x8003000 改为 irom1:0x8000000 2.Debug: 勾选use Simulator Dialog Dll 原来 DCM.DLL -pCM3 改为 DARMSTM.DLL -pSTM32F103VC
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被写保护了,可
单片机中基于时间片的多任务的实现
本博文基于STM32F103系列实现了类似时间片的多任务执行机制,可以在硬件资源(定时器)比较紧张的情况下,既可以实现多路应用,也可以提高应用的实时性(时间片够细,够短)。
stm32添加串口调试
MCU为stm32F103,选择usart3作为输出调试口。 有三种实现方法: ////////////////////////////////////////// 方法一: 1、usart3.c #if 1 #pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; }; typedef...
关于温湿度检测的外文翻译
基于单片的温湿度智能检测系统 温湿度外文文献
有着几年开发经验遇到的关于openmv和stm32串口通信的问题,很有挑战性的。。求解决
我用openmv的串口3发送一帧数据,像这样B3 B3 d 1a 1c d1 5d 85 ,前两个b3是帧头,后六个是数据,使用串口助手,可以在电脑上接收到。同样使用串口助手将从openmv接收到的数据原封不动发送到单片机上,发现能完美接收到,并且没有错误。 但是,重点来了,将openmv和单片机串口连接时,单片机收!不!到!数!据!了(t和r已对调),我是真的调了一天了,是在是没有办法了。 ...
STM32的音乐播放器程序,亲测可用
STM32的音乐播放器程序,亲测可用。内有详细的注释和文档。很好的学习资料。
STM32驱动max6675测温的测试例程
STM32F103 驱动max6675模块测量k型热电偶温度的测试例程。用到的资源有串口1和SPI1
stm32最全的资料书
里面是一步一步学习stm32的学习方法,另外实验介绍很全面。可以购买stm32F4板子,配套学习
STM32单片机硬件关键基础精华及注意事项
一、背景 如果你正为项目的处理器而进行艰难的选择:一方面抱怨16位单片机有限的指令和性能,另一方面又抱怨32位处理器的高成本和高功耗。 那么,基于 ARM Cortex-M3内核的STM32系列处理器也许能帮你解决这个问题。使你不必在性能、成本、功耗等因素之间做出取舍和折衷。 即使你还没有看完STM32的产品手册,但对于这样一款融合ARM和ST技术的“新生儿”相信你和我一样不会担心这款针对16位M...
单片机的外文文献与翻译.2018_03_16
单片机外文与翻译,一般用毕业论文设计时,也可以用空大至少
001_STM32程序移植之_DS1302
1. 测试环境:STM32C8T6 2. 测试模块:W25Q64FLASH模块 3. 测试接口: 1. W25Q64FLASH模块接口: VCC3.3--------------------VCC3.3 GND----------------------GND CS------------------------PB12 DO--------------------...