OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6997|回复: 3

【【好诡异!】】好诡异的GPIO!求助!!!

[复制链接]

9

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2012-10-29
在线时间
4 小时
发表于 2012-11-4 23:45:48 | 显示全部楼层 |阅读模式

情况是这样的:

自己写了个小小的测试程序,仿真时却出现诡异的情况,MDK软仿真时一切正常,

但用JTAG硬仿真时,GPIO端口PA.8却无法设置模式,具体表现为:

库函数 GPIO_Init 里的   GPIOx->CRH = tmpreg;  这句无法把值 tmpreg 写进寄存器 CRH 中。

软仿真就一切正常,jtag调试就怪了,明明执行这句了,寄存器却不变。

此时tmpreg值为 0x88844443, CRH值为 0x88844444,R4内的值为0x88844443,R2内值为 0x40010800  ,

GPIOx->CRH = tmpreg; 对应的汇编语句为   STR   R4,  [ R2, #0x04 ],
查询Cortex-M3权威指南得到 :         STR Rd, [Rn, #offset]      把Rd中的低字存储到地址Rn+offset处 ;

按理说,执行完这句之后, CRH 的值应该变成 0x88844443,但怪就怪在 CRH 的值就TMD没变化,依然是0x88844444 !真邪了门了!

具体位置,工程里的库函数 stm32f10x_gpio.c  的256行。

平台:mini STM32 + MDK4.5.3 +J-link V8。

莫非是MDK有bug?又或是山寨JLink有bug?要不就是活见鬼了!

求大侠帮忙啊!多谢多谢!

全部代码在压缩包里,工程文件在压缩包的RVMDK文件夹里。

stm32f10x_demo_2_串口.rar

378.53 KB, 下载次数: 169

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2012-10-29
在线时间
4 小时
 楼主| 发表于 2012-11-5 00:02:55 | 显示全部楼层
看来是都进入梦乡了。。。这大冷天儿的,睡得早也是常情,希望明天能有人解决。。。咱也睡吧。。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-11-5 01:35:20 | 显示全部楼层
回复【楼主位】gaupen1186:
---------------------------------
没那么诡异吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2012-10-29
在线时间
4 小时
 楼主| 发表于 2012-11-5 09:41:00 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
问题解决!原来是我代码里先操作GPIO,后才开APB2时钟。。。
晕死~~~
╮(╯▽╰)╭
看来大晚上的钻进某个角落真不容易出来。。。一觉起来,豁然开朗!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-3-1 01:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表