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

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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版