STM32单片机在Keil5下仿真的问题解决及GPIO口初始化、使用
2017-03-30 09:08
253 查看
最近看了视频,里面有仿真,可以清楚看到GPIO口的数据变化,也想尝试下,DUG时却出现*** error 65: access violation at 0x40021000 : no 'read' permission,按照网上给的各种办法,包括修改memory map,以及其他各种办法,都无法解决,后来发现问题在下面这张图所示的位置:
这个图上红色框中的两个参数是我修改之后的,原来的值是软件安装之后的默认值:
Dialog DLL默认是DCM3.DLL
Parameter默认是-pCM3
应改为
Dialog DLL默认是DARMSTM.DLL
Parameter默认是-pSTM32F103RC
然后就可以愉快的仿真了。
仿真过程:
点击Debug,然后点击Peripheral菜单项,然后在General Purpose I/O这儿选择你要看的管脚,我这里选择GPIOA,完成后点击setup添加PORTA.0 就可以看GPIOA_Pin0的信号了:
借鉴这里的经验,在此感谢http://www.stmcu.org/module/forum/thread-599469-1-1.html
以上是使用软件仿真的设置,那么硬件仿真(jlink)应该如何设置呢?
需要把右边的:
Dialog DLL默认是TARMSTM.DLL
Parameter默认是-pSTM32F103RC
保存之后点击Utilities,并进行如下设置:
然后就可以使用jlink仿真了。
这个图上红色框中的两个参数是我修改之后的,原来的值是软件安装之后的默认值:
Dialog DLL默认是DCM3.DLL
Parameter默认是-pCM3
应改为
Dialog DLL默认是DARMSTM.DLL
Parameter默认是-pSTM32F103RC
然后就可以愉快的仿真了。
仿真过程:
点击Debug,然后点击Peripheral菜单项,然后在General Purpose I/O这儿选择你要看的管脚,我这里选择GPIOA,完成后点击setup添加PORTA.0 就可以看GPIOA_Pin0的信号了:
借鉴这里的经验,在此感谢http://www.stmcu.org/module/forum/thread-599469-1-1.html
以下是一段GPIO口初始化及输出的使用的代码:
1 #include<stm32f10x.h> 2 3 int main(){ 4 5 //定义一个GPIO初始化结构体,要在RCC使能之前定义,否则会报错 6 GPIO_InitTypeDef GPIO_InitStruct; 7 8 //初始化RCC并使能 9 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); 10 11 //设置要初始化的GPIO的管脚 12 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; 13 14 //设置要初始化的GPIO的速度 15 GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; 16 17 //设置要初始化的GPIO的模式 18 GPIO_InitStruct.GP 4000 IO_Mode = GPIO_Mode_Out_PP; 19 20 //调用初始化函数,传入参数为GPIO初始化结构体的地址 21 GPIO_Init(GPIOA, &GPIO_InitStruct); 22 23 //在循环中给GPIO_Pin_1不断置位复位,也就是给高低电平,可以用来点亮对应管脚的led 24 while(1){ 25 26 //GPIO管脚置位函数,第一个参数为那个GPIO口,第二个为GPIO口的第几个引脚 27 GPIO_SetBits(GPIOA, GPIO_Pin_0); 28 29 //GPIO管脚复位函数,第一个参数为那个GPIO口,第二个为GPIO口的第几个引脚 30 GPIO_ResetBits(GPIOA, GPIO_Pin_0); 31 } 32 33 34 35 36 37 return 0; 38 }
以上是使用软件仿真的设置,那么硬件仿真(jlink)应该如何设置呢?
需要把右边的:
Dialog DLL默认是TARMSTM.DLL
Parameter默认是-pSTM32F103RC
保存之后点击Utilities,并进行如下设置:
然后就可以使用jlink仿真了。
相关文章推荐
- STM32单片机在Keil5下仿真的问题解决及GPIO口初始化、使用
- modesim se 10.1a 下载安装 使用 仿真 与问题的解决
- 怎么解决STM32(MDK)中不能使用printf()函数的问题
- STM32使用SRAM方式仿真不进串口中断的解决方法
- 014:针对mdk中STM32程序无法使用printf,产生停留BEAB BKPT 0xAB处问题的解决(转)
- 使用git将项目上传到github 以及解决“git commit -m”初始化问题
- stm32单片机进入休眠(STOP)模式后无法下载程序等问题的解决
- STM32单片机学习——使用外设库的一些问题
- stm32使用jtag仿真问题
- STM32 GCC 使用 USB 库出现”undefined reference to _sbrk”问题解决
- 关于STM32的硬件IIC使用问题解决方案
- stm32之 GPIO_Remap_SWJ_Disable之后无法使用swd下载 程序解决方法
- stm32单片机GPIO端口使用
- MDK软件不能模拟仿真STM32的问题解决方法
- 【STM32学习笔记】软件使用---win10下 keil5打开keil4工程的问题
- STM32使用J-Link的SWD接口调试出现Supply voltage is too low问题的解决办法
- EF(Entity Framework)发生错误”正在创建模型,此时不可使用上下文“的解决办法。 正在创建模型,此时不可使用上下文。如果在 OnModelCreating 方法内使用上下文或如果多个线程同时访问同一上下文实例,可能引发此异常。请注意不保证 DbContext 的实例成员和相关类是线程安全的。 临时解决了这个问题,在Context的构造函数中,禁用了自动初始化:
- 使用keil5.10软件仿真教程以及解决软件仿真unknown signal无法识别引脚端口问题
- STM32 GPIO的使用问题(持续更新中.....)
- 关于stm32(cotex-m3)向量表初始化的总结笔记(含一个未解决问题)