打印

STM32端口寄存器问题请教

[复制链接]
2606|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 xiao442613 于 2010-10-12 23:08 编辑

今天我在调试STM32F103VCT6的时候,发现在一奇怪的问题,我在使用KEIL进行软仿真的时候,执行GPIOA->CRL = 0x22222222;后,我看到KEIL外设寄存器GPIOA->CRL 的值被修改为0x22222222,可是当我使用JLINK连接板子,进行硬件在线仿真的时候,却发现外设寄存器GPIOA->CRL 的值没有任何改变,直接下载.HEX文件到板子上,观测发现GPIOA->CRL 的值还是没有改变(A口接在LED),不知道是什么原因? 这是硬仿真的时的截图! 这是软仿真时的截图!
沙发
xiao442613|  楼主 | 2010-10-12 23:12 | 只看该作者
补充一下,这个现象只出现在A口,其它B,C,D,E口均没有此现象发生!

使用特权

评论回复
板凳
香水城| | 2010-10-13 07:43 | 只看该作者
开GPIOA的时钟了吗?

使用特权

评论回复
地板
xiao442613|  楼主 | 2010-10-13 09:25 | 只看该作者
嗯,查了下程序,A口的确实忘了开了,:loveliness:初次使用STM32,现在开了GPIOA的时钟好了

使用特权

评论回复
5
xiao442613|  楼主 | 2010-10-13 09:33 | 只看该作者
还出现过一个问题,我仿真的时候观测到,程序执行完startup_stm32f10x_hd.s中的               
LDR     R0, =__main
BX      R0
ENDP
却没有跳到main涵数处,而是跳到_sys open的地方,一直出不来,版主见过这种情况吗?

使用特权

评论回复
6
香水城| | 2010-10-13 14:06 | 只看该作者
直接放一个断点在main,能跳到main吗?

如果真有5楼说的问题,那么前面说的GPIOA的程序不可能被执行到呀,:dizzy:

使用特权

评论回复
7
xiao442613|  楼主 | 2010-10-13 14:52 | 只看该作者
放断点,也跳不到,跳到_sys open是我单步执行观测到的,这个工程是我自己建的。
目前我使用了一个别人建的工程模板,我把自己的程序文件拷贝进去后,仿真调试没有问题!

使用特权

评论回复
8
香水城| | 2010-10-14 05:02 | 只看该作者
放断点,也跳不到,跳到_sys open是我单步执行观测到的,这个工程是我自己建的。
目前我使用了一个别人建的工程模板,我把自己的程序文件拷贝进去后,仿真调试没有问题! ...
xiao442613 发表于 2010-10-13 14:52


你应该把自己建的工程与别人建的工程模板比较一下,看看哪里不同,这样不就找到原因了吗!

使用特权

评论回复
9
xiao442613|  楼主 | 2010-10-14 09:27 | 只看该作者
版主辛苦了,不会是一夜没睡吧,怎么起那么早啊!
我确实把自己建的工程和别人建的模板比较了,我看了options for Target'project'里设置的每一项,都是一样的。

使用特权

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

本版积分规则

14

主题

50

帖子

1

粉丝