你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

急急急!!!stm8l芯片,传参值出现改变!!!

[复制链接]
hejiuqu 提问时间:2015-9-29 17:53 /

用的是IAR FOR STM8的环境,stlink 仿真器。传参时: 42(8}07ZD`0VA%UN`RQ~_$M.png



IAR中参数值: ZKTPI[LO4EZM3UOQ8G6A2UV.png }ZX0`57P6DON`U$_$%UY4(D.png



完整的函数体:

不知道有人碰到过这种情况没?有可能是什么原因?
出现这种状况,程序无法编下去了,求救各位大神!!!







收藏 评论8 发布时间:2015-9-29 17:53

举报

8个回答
moyanming2013 回答时间:2015-9-29 18:35:51
实在不清楚你在问什么!看汇编不是执行了正确的流程了吗?有时候IDE并不是非常准确,因为调试时可能存在的配合问题。

QQ截图20150929183427.jpg

hejiuqu 回答时间:2015-9-29 18:48:12
moyanming2013 发表于 2015-9-29 18:35
实在不清楚你在问什么!看汇编不是执行了正确的流程了吗?有时候IDE并不是非常准确,因为调试时可能存在的 ...

cmode的值我传的0,在IAR中观察的是0x34,下面那个函数没有涉及,这个参数没有进行操作,只是作判断!!当我把cmode == 0的条件改为comde == 0x34就可以了,不知道什么原因,在下面的编程中又出现这种问题了,程序编不下去了。
hejiuqu 回答时间:2015-9-29 18:52:35
moyanming2013 发表于 2015-9-29 18:35
实在不清楚你在问什么!看汇编不是执行了正确的流程了吗?有时候IDE并不是非常准确,因为调试时可能存在的 ...

而且我后面调试过程中发现,有个变量的值只可为0或1,但是观察看到的却是其他值,导致正常逻辑不行,按观察的值反而可以。
moyanming2013 回答时间:2015-9-29 23:28:33
本帖最后由 moyanming2013 于 2015-9-29 23:31 编辑
hejiuqu 发表于 2015-9-29 18:48
cmode的值我传的0,在IAR中观察的是0x34,下面那个函数没有涉及,这个参数没有进行操作,只是作判断!! ...

IDE中有时要手动刷新才会更新真实的数据。
可能的情况
1.作用域的问题。
2.栈的问题,函数参数没有正确压入或弹出。
3.对于形参加入一个volatile试试?或者像第一个形参似的,内部再申请一个并赋值。

但我认为,一般都是不细心造成的问题,你还是仔细再审查下自己的代码,从头开始一行不落。
zhuoyemp4 回答时间:2015-9-30 08:46:35
我想你还是仔细看看cmode这个变量都有哪些函数用过
ughbss 回答时间:2015-9-30 09:44:50
你在使用这个函数时有没有先申明?IAR FOR sTM8 中实测不申明函数也能调用(好奇怪),但是传递的参数会变,下面只会提示警告,不会报错。
hejiuqu 回答时间:2015-9-30 10:28:07
moyanming2013 发表于 2015-9-29 23:28
IDE中有时要手动刷新才会更新真实的数据。
可能的情况
1.作用域的问题。

今天我把形参改成u16 data_mode,同第一个一样再在内部加个mode,然后把data_mode 传给mode,最后才用mode做判断,可以了。不知道什么原因,很郁闷,不知道后面的程序会不会出问题。非常感谢各位的建议!!!
星辰一方 回答时间:2015-9-30 12:50:55
hejiuqu 发表于 2015-9-29 18:48
cmode的值我传的0,在IAR中观察的是0x34,下面那个函数没有涉及,这个参数没有进行操作,只是作判断!! ...

该不会是把数值0和ASCII码的0搞混了吧楼主

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版