6134|4

483

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

请教一个问题,stm32除法报错 [复制链接]

本帖最后由 yl20084784 于 2015-12-25 15:46 编辑

最近用到一个二分法查找stm32L051内置flash里面的数据,在二分一个指针的时候出现了点问题,除法报错。把不相关的去掉,只留干货。

当P=0x0800319E的时候




运行这句:

HA=(uint32_t)P/4;


报错如下:

意思就是内核硬件错误.
这个时候P=0X0800319e=134230430 ,除以4是除不尽的,所以报错...
有没有什么办法忽略这个报错,让他继续执行下去啊?
此帖出自stm32/stm8论坛

最新回复

感谢楼主的分享和分析,不过我并没有感觉到这段代码有多精妙! 首先这个并不是一个键盘扫描程序,而是一个处理函数,当然非要这么叫也能说的过去,比较这个函数没有涉及键值的处理,也算扫描。其次说这个程序只有三行有点儿标题党的意思了,因为这个显然用的是独立按键,独立按键的读取本来就简单,一句话就完了,下面的处理用的也是C语言的技巧而已,但这个技巧并不代表高的执行效率,也就是这样的简短并没有实际意义,还不如分行写清楚的好。我mei看过华为的一个编程规范,明确建议少用C语言技巧。再一个这个函数本事并没有滤波功能,因此算不上一个完整的键盘扫描函数。通过主函数实现滤波是稍微大一些应用中就不可取了,这个函数的用法优点在于按下按键之后只执行一次规定 操作,同时可以及时(按楼主说的就是20ms)发现按键松开。  详情 回复 发表于 2018-9-13 14:28
点赞 关注
 

回复
举报

4008

帖子

0

TA的资源

版主

沙发
 
怀疑你变量命名有冲突,换个名字试试,除法不至于内核错啊
此帖出自stm32/stm8论坛
 
 

回复

1149

帖子

3

TA的资源

五彩晶圆(初级)

板凳
 
这个处理器的读写的最小单位是word,也就是你的访问地址必须是0X08000000+ADDR,所以你的ADDR必须是4的整数倍,等到渠道word再得到每一byte,报错是因为你传入了非法访问地址!手册中有说到FLASH可能会进入到硬件错误的各种情况的。
此帖出自stm32/stm8论坛

点评

懂了,之前有个程序就是用word为单位来计数,再用二分法查找,感觉用word写个1太浪费了,所以寻思着利用每一个bit,所以出现这种情况。  详情 回复 发表于 2015-12-25 17:19
 
个人签名construction complete!
 

回复

483

帖子

0

TA的资源

纯净的硅(初级)

4
 
zqjqq88 发表于 2015-12-25 16:43
这个处理器的读写的最小单位是word,也就是你的访问地址必须是0X08000000+ADDR,所以你的ADDR必须是4的整数 ...

懂了,之前有个程序就是用word为单位来计数,再用二分法查找,感觉用word写个1太浪费了,所以寻思着利用每一个bit,所以出现这种情况。
此帖出自stm32/stm8论坛
 
 
 

回复

32

帖子

0

TA的资源

一粒金砂(中级)

5
 
感谢楼主的分享和分析,不过我并没有感觉到这段代码有多精妙! 首先这个并不是一个键盘扫描程序,而是一个处理函数,当然非要这么叫也能说的过去,比较这个函数没有涉及键值的处理,也算扫描。其次说这个程序只有三行有点儿标题党的意思了,因为这个显然用的是独立按键,独立按键的读取本来就简单,一句话就完了,下面的处理用的也是C语言的技巧而已,但这个技巧并不代表高的执行效率,也就是这样的简短并没有实际意义,还不如分行写清楚的好。我mei看过华为的一个编程规范,明确建议少用C语言技巧。再一个这个函数本事并没有滤波功能,因此算不上一个完整的键盘扫描函数。通过主函数实现滤波是稍微大一些应用中就不可取了,这个函数的用法优点在于按下按键之后只执行一次规定 操作,同时可以及时(按楼主说的就是20ms)发现按键松开。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表