keil软件仿真时遇到的问题汇总

一、软件仿真步骤设置:

1.target-->XTAL晶振设置(STM32,8.0)

2.Option->Debug->Use_Simulator

3.Option->Debug

     Dialog DLL默认是DARMSTM.DLL

     Parameter默认是-pSTM32F103VC

二.

keil仿真时,会遇到程序停在

  /*Wait till HSE is ready and if Time out is reached exit */

  do

  {

   HSEStatus = RCC->CR & RCC_CR_HSERDY;

   StartUpCounter++; 

  }while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));处不动了

解决方法:

是Debug里面的设置有问题

主要是下面2项设置

Dialog DLL默认是DCM3.DLL

Parameter默认是-pCM3

应改为

Dialog DLL默认是DARMSTM.DLL

Parameter默认是-pSTM32F103ZE     //根据芯片信号具体选择

三.

STM32F407VG工程进入软件仿真时,出现*** error65: access violation at 0x0000000C : no 'read' permission错误。

当点击RUN按钮时会重复提示*** error 65: access violation at 0x00000000 : no 'execute/read'permission的错误。

解决方法:

1.Option->Debug->Use_Simulator->CPU.DLL的Parameter,改为-REMAP。现象:依然错误,当时内存地址已经改变:*** error 65: access violation at 0x40023800 : no 'read' permission

2.Option->Debug->Use_Simulator->Initialization_File,打开并新建一个.ini文件,里面写上map0x40000000,0x400FFFFF read write保存即可(MAP不区分大小写,注意read和write中间是空格不是逗号)

3. 再进入Debugger就可以了

4. 或者,可以省略第二步,进入Debugger之后再设置map:Debug->Memory_map,手动输入0x40000000,0x400FFFFF(输入框上面有个示例是0x4000FFFF,但是这个地址值不够大,我们要大一点的0x400FFFFF)。步骤2和4的区别在于:每次退出Debugger后,步骤4的设置都会丢失,会比较麻烦,所以一般只用步骤2的方法

5. 貌似不能通过更改设置中的DLL和它的参数来修正STM32F4的这个错误。因为在keil的安装目录下的\ARM\BIN里面没有相应的DLL文件(通过“文件说明”项来查看文件的使用说明~)

3.

STM32F103软件仿真时,出现:

*** error 65: access violation at 0x40021000: no 'read' permission

解决方法:

Debug里面的设置有问题

主要是下面2项设置

Dialog DLL默认是DCM3.DLL

Parameter默认是-pCM3

应改为

Dialog DLL默认是DARMSTM.DLL

Parameter默认是-pSTM32F103VC

4.

软件仿真共示波器看波形,发现周期不对

解决方法:设置target中的晶振平率是否设置成板子中实际应用的外部晶振

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Keil5是一种常用的嵌入式开发工具,可以用于开发AT89C51这样的单片机。AT89C51是一款经典的8051系列单片机,常用于各种嵌入式系统的开发。在Keil5中,我们可以使用C语言编写程序,并通过编译器生成相应的机器码,然后将机器码下载到AT89C51单片机中进行运行。 关于AT89C51的串口收发数据的问题,引用中提到了在Proteus软件中使用Proteus配Keil for C51编译器调试UART串口通信,发送数据没有问题,但接收数据遇到了一些问题。文章中提到了一些可能的原因,比如输入RXD的波形、波特率以及串口配置等都是正确的,但AT89C51却无法接收数据,RI标志位也未置位,无法进入串口中断程序。作者怀疑这是Proteus的AT89C51模块存在一些小问题导致的。 为了解决这个问题,一种常见的方法是使用Keil μVision5进行仿真调试。引用中提到了Keil5的安装方式,同提供了MDK和C51的EXE文件的网盘资源供下载。使用Keil μVision5进行仿真调试可以方便地进行单步调试、查看变量值、监控寄存器状态等操作,从而更容易发现问题所在。 具体的仿真调试流程可以参考引用中的说明。首先在μVision5的魔法棒中设置调试选项,然后将之前建立好的debug_C51.ini添加进来。通过这样的配置,我们可以在Keil μVision5中进行AT89C51的仿真调试,检查串口收发数据的问题。 总结来说,如果在Proteus中遇到了AT89C51串口收发数据的问题,可以考虑使用Keil μVision5进行仿真调试。通过单步调试和观察变量值、寄存器状态等信息,可以更容易地找到问题所在,并进行解决。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Keil实例仿真AT89C51串口UART收发数据(附程序)](https://blog.csdn.net/tj_nonstoper/article/details/124271543)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Keil 5的第一个汇编程序C51(包括Debug)](https://blog.csdn.net/weixin_52060706/article/details/123868713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值