关于一个stm32单片机debug问题

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

8个回答

图片说明这样吗

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

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

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

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

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

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

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

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐