STM8L的CFG_GCR寄存器中AL要置1如何实现?

2019-03-23 17:41发布

我看了下编程指南,想对CFG_GCR寄存器中的AL位置1,从而使Halt模式下的中断直接返回Halt状态。可是具体要如何置1,求C语言代码,我试过如下写法 CFG_GCR = 0x02;   CFG_GCR_bit.AL = 1; ,编译器都提示没有该关键字。
这种问题应该查阅什么手册或者哪个.h文件呢?


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
残雪
1楼-- · 2019-03-23 21:14
/ CFG->GCR =CFG_GCR_AL;
jiyiche
2楼-- · 2019-03-23 22:48
残雪 发表于 2017-4-24 09:49
CFG->GCR =CFG_GCR_AL;

谢谢!请问要查阅哪里的手册才可以知道这样写?我希望下次遇到问题能自己查阅对应的手册,就是不知道这个是要查什么手册。
残雪
3楼-- · 2019-03-24 03:13
 精彩回答 2  元偷偷看……
jiyiche
4楼-- · 2019-03-24 07:40
残雪 发表于 2017-4-27 13:35
中文参考手册

你好,中文参考手册不就是英文Reference Manual的翻译而已吗?我看Reference Manual并没有提到如何用C语言往寄存器CFG_GCR中的AL位置1,他只提到该为应为1,没说如何置一。
残雪
5楼-- · 2019-03-24 10:08
jiyiche 发表于 2017-4-27 22:30
你好,中文参考手册不就是英文Reference Manual的翻译而已吗?我看Reference Manual并没有提到如何用C语 ...

从参考手册看,是不是找到了全局配置寄存器(CFG_GCR)这里:
TIM截图20170428092155.png
看到CFG_GCR这个寄存器 AL位,也就是第二位0和1的不同功能
那是不是这个寄存器在不禁用swim模式的情况下,赋值0x02即可

因为我习惯使用库函数,寄存器不是很熟,所以我在标准库里面去找相关的内容:
STM8S头文件有这几个东西(stm8s.h)
typedef struct CFG_struct
{
  __IO uint8_t GCR; /*!< Global Configuration register */
}
CFG_TypeDef;

#define CFG_GCR_SWD ((uint8_t)0x01) /*!< Swim disable bit mask */
#define CFG_GCR_AL  ((uint8_t)0x02) /*!< Activation Level bit mask */
jiyiche
6楼-- · 2019-03-24 14:30
 精彩回答 2  元偷偷看……

一周热门 更多>