打印
[STM32L0]

STM32L051 进入HardFault中断

[复制链接]
1156|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Larm1|  楼主 | 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字节等的多字节变量转换为单字节访问方式,反过来还真是第一次见, 哈哈哈...


沙发
yiy| | 2017-7-6 23:58 | 只看该作者
你这太高深了。

使用特权

评论回复
板凳
cmg227| | 2017-7-7 11:08 | 只看该作者

CEC中国电子旗下华大半导体有超低功耗单片机,M0+内核,宽电压低功耗,电气性能参数优于ST,价格和供货稳定可靠。
陈生:18521702816
QQ:290814902

使用特权

评论回复
地板
643757107| | 2017-7-7 20:39 | 只看该作者
用指针做这个,确实给力。

使用特权

评论回复
5
void_chen| | 2017-7-9 15:36 | 只看该作者
谢谢你的总结:尽量避免强制类型转换,大转小使用很多,小转大,原来值可能溢出

使用特权

评论回复
6
wahahaheihei| | 2017-7-9 19:30 | 只看该作者
指针真是个好东西。

使用特权

评论回复
7
捉虫天师| | 2017-7-9 21:28 | 只看该作者
学到这个方法了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:大爱无疆

53

主题

389

帖子

0

粉丝