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

STM32L051 进入HardFault中断

[复制链接]
power568 提问时间:2017-7-6 20:36 /
本帖最后由 power568 于 2017-7-6 20:43 编辑

      今天移植的程序有这么个现象:
      uint8_t       test;

      void    Fun(uint16_t *para);
      uint16_t    Read(void);

      void Fun(uint16_t *para)
      {
            *para = Read();
      }

      调用函数:
      Fun((uint16_t)&test);

     大家猜,Fun调用会出什么问题?

     也许没问题,至少这个程序在STM32F103运行时没有由于这个地方出现问题。

     但是在L051上运行时,在Read返回后就进入了HardFault中断。

     小菜一碟,慢慢品尝...
      之前有见2字节/4字节等的多字节变量转换为单字节访问方式,反过来还真是第一次见, 哈哈哈...


收藏 评论3 发布时间:2017-7-6 20:36

举报

3个回答
MrJiu 回答时间:2017-7-7 09:37:46
指针的强制转换不应该是:(uint16_t *)的么???你那样会提示语法错误的吧!!!!
MrJiu 回答时间:2017-7-7 09:39:18
当然了,至于会出现什么样的事情,我觉得,应该是数据溢出吧!!!!
power568 回答时间:2017-7-7 15:52:34
编译没有报警和出错提示,数据访问地址出错导致中断产生...

所属标签

相似问题

官网相关资源

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