stm32仿真卡死,报错Access to register of unclocked peripheral at 0x40010C0C cause BUS_FAULT [U2_CM3CORE]

Proteus仿真STM32F103C8T6时,一仿真就卡死,报错如下:

原因分析是先对端口进行赋值了,然后才初始化的端口。

修改如下:

调整顺序后问题解决。

一定要先初始化,否则找不到时钟配置就会报这个错。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这个问题通常发生在访问未解锁的外设寄存器时,导致总线错误(BUS_FAULT)。解决这个问题的方法取决于你所使用的处理器和开发环境。下面是一些可能的解决方案: 1. 确保正确配置外设寄存器:确保你正确地配置了外设寄存器,包括解锁操作。对于不同的处理器和外设,配置方法可能会有所不同。请参考相关的处理器手册或外设文档,确保寄存器的访问权限已经正确设置。 2. 检查寄存器地址和访问模式:确保你正在访问正确的寄存器地址,并且使用正确的读写模式。某些外设可能有特定的读写要求,如只读或只写。确保你的代码与外设的要求一致。 3. 检查中断和优先级设置:如果你的代码中涉及中断,确保中断优先级正确设置,并且中断处理程序中没有对未解锁的寄存器进行访问。有时,中断处理程序中对未解锁寄存器的访问可能导致总线错误。 4. 检查时钟和电源配置:某些外设可能需要正确的时钟和电源配置才能正常工作。确保你已经正确配置了时钟和电源,并且外设能够正常启动。 5. 调试和排除故障:如果以上步骤都没有解决问题,你可以使用调试工具来跟踪代码执行过程,查看发生错误的具体位置。通过检查相关的寄存器状态和堆栈信息,你可以进一步分析和解决问题。 总的来说,解决这个问题需要仔细检查代码、配置和环境设置,并确保与外设的交互正确无误。如果问题仍然存在,你可能需要进一步研究和调试,以找到更具体的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪法师解剖鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值