你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于stm8的cc寄存器读取问题!

[复制链接]
超级小新 提问时间:2015-5-2 16:53 /
在IAR用  PD_ODR_ODR3 = CPU_CCR_C;   无法赋值成功,仿真中看到 CPU_CCR_C的值是有变化的,但是赋值到PD_ODR_ODR3时,PD_ODR_ODR3总是等于0。PD_ODR_ODR3=1;这样正常赋值是没有问题。希望知道的大神指点一下!
收藏 评论7 发布时间:2015-5-2 16:53

举报

7个回答
沐紫 回答时间:2015-5-11 13:14:56
这个问题被遗忘了,顶
zhuoyemp4 回答时间:2015-5-11 14:49:26
本帖最后由 zhuoyemp4 于 2015-5-11 15:15 编辑

在数据手册中,Register map一节中,表格 CPU/SWIM/debug module/interrupt controller registers下面有条对CPU寄存器的注释,“Accessible by debug module only”(只由调试模块访问)。我在IAR中调试观察CPU_CCR_C的值,发现程序执行到A=B+C;(B=0XB5,C=0X94,肯定让C置位)但还没执行这句时,C已经是1了,执行完这句,C就成0了。就像你的程序里,在执行到PD_ODR_ODR3 = CPU_CCR_C; 时,C已经是0了。
zhuoyemp4 回答时间:2015-5-11 15:05:53
本帖最后由 zhuoyemp4 于 2015-5-11 15:47 编辑

还有,在stm8.h中对这些只由调试模块访问的CPU寄存器是没有做定义的,我是自己加了定义、地址映射后去调试的。你不加还能编译通过?难道我们的头文件不一样?
超级小新 回答时间:2015-5-16 09:28:18
zhuoyemp4 发表于 2015-5-11 15:05
还有,在stm8.h中对这些只由调试模块访问的CPU寄存器是没有做定义的,我是自己加了定义、地址映射后去调试 ...

用的是IAR,这个问题我解决了!!假如要真的这样读bit,嵌入汇编即可!!
超级小新 回答时间:2015-5-16 09:34:46
zhuoyemp4 发表于 2015-5-11 15:05
还有,在stm8.h中对这些只由调试模块访问的CPU寄存器是没有做定义的,我是自己加了定义、地址映射后去调试 ...

头文件我用的是具体的ic型号,不是stm8.h,里面是有定义的
ynwscfsfi 回答时间:2015-5-16 10:08:53
PD_ODR_ODR3        这是一个位操作的,只能是0或1,不能为别的值
zhuoyemp4 回答时间:2015-5-16 10:13:49
超级小新 发表于 2015-5-16 09:34
头文件我用的是具体的ic型号,不是stm8.h,里面是有定义的

不管怎样,cpu寄存器只由调试模块访问,写程序是访问不了的

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版