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

关于STM8寄存器定义在哪个头文件中?

[复制链接]
wmwei1989 提问时间:2018-10-29 08:55 /
如题,最近在写CAN总线的收发功能,在设置STM8的CAN总线寄存器的时候,发现找不到相应的寄存器了,如下图所示,然后我查阅了iostm8af52a8.h文件中,发现只定义了部分寄存器,其他的我没找到,找不到在哪了?网上也找不到关于STM8的CAN的寄存器设置例程,关于CAN总线的寄存器设置也不好找,所以我就自己按照原子哥的STM32的例程以及STM8的手册,想自己写一个,就出现了这个问题,我看了下库函数版的寄存器设置,例如CAN->Page.Config.BTR1这个寄存器,写在我的程序里也找不到这个寄存器定义,有人做过的能解答一下这个疑问吗?我用的STM8AF52A8。CAN_MCR定义了,但是CAN_BTR1就没有定义报错
stm8寄存器错误.jpg
收藏 评论14 发布时间:2018-10-29 08:55

举报

14个回答
wmwei1989 回答时间:2018-10-29 08:56:08
自己先顶一下自己,网上实在找不到寄存器版本的例程,都好几天了,没有解决找到答案,求助各路大神呀
wenyangzeng 回答时间:2018-10-29 10:21:35
本帖最后由 wenyangzeng 于 2018-10-29 10:23 编辑

库文件里有呀,可能是楼主未添加进工程里!

STM8S_StdPeriph_Driver.rar (3.88 MB, 下载次数: 37)

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

wmwei1989 回答时间:2018-10-29 11:03:56
wenyangzeng 发表于 2018-10-29 10:21
库文件里有呀,可能是楼主未添加进工程里!

你是说直接用stm8s.h、stm8s_config.h、stm8s_it.c,stm8s_it,这四个文件吗,不用iostm8af52a8.h文件吗?是这个意思吗?
wenyangzeng 回答时间:2018-10-29 11:23:50
本帖最后由 wenyangzeng 于 2018-10-29 11:27 编辑
wmwei1989 发表于 2018-10-29 11:03
你是说直接用stm8s.h、stm8s_config.h、stm8s_it.c,stm8s_it,这四个文件吗,不用iostm8af52a8.h文件吗? ...

这个CAN的库文件要添加到工程里呀:

can.rar (12.22 KB, 下载次数: 6)
wmwei1989 回答时间:2018-10-29 11:39:34
wenyangzeng 发表于 2018-10-29 11:23
这个CAN的库文件要添加到工程里呀:

可是我想直接操作寄存器去写程序,不想用官方给的库函数,经常会出现bug,感觉不是太好用,之前用的一个GPIO的库函数,结果不知道什么原因,就是不能输出高电平,用寄存器就没问题了,就果断放弃用库操作了,不过我只是STM8选择放弃使用库,如果是STM32我就还是用库函数操作的,我寻思应该没有定义的寄存器需要自己去定义了,反正都有寄存器基地址什么的,正在看
wmwei1989 回答时间:2018-10-29 11:41:11
wenyangzeng 发表于 2018-10-29 11:23
这个CAN的库文件要添加到工程里呀:

我说的不能输出高电平,是排除硬件问题了的,而且当时有5路输出高电平,唯有一路怎么都不能输出,所以才放弃的,也没深究到底什么原因,上网查了一下,好多人也有遇到那样的问题的,所以,基于STM8的寄存器确实挺少的,就选择直接操作寄存器了
zcl201207 回答时间:2018-10-29 20:08:34
STVD 里是有这些寄存器头文件的,IAR没怎么用不太清楚。。。
wmwei1989 回答时间:2018-10-31 08:29:03
zcl201207 发表于 2018-10-29 20:08
STVD 里是有这些寄存器头文件的,IAR没怎么用不太清楚。。。

我看了,确实有,但是定义的我看不出来什么,STVD和IAR的头文件几乎一样,我把这部分代码贴出来,想知道怎么C:\Users\Administrator\Desktop[img][/img]
wmwei1989 回答时间:2018-10-31 08:30:02
zcl201207 发表于 2018-10-29 20:08
STVD 里是有这些寄存器头文件的,IAR没怎么用不太清楚。。。

__IO_REG8_BIT(CAN_PSR,     0x5427, __READ_WRITE, __BITS_CAN_PSR);

/* CAN paged register 0 N/A */
__IO_REG8    (CAN_P0,      0x5428, __READ_WRITE);
/* CAN paged register 1 N/A */
__IO_REG8    (CAN_P1,      0x5429, __READ_WRITE);
/* CAN paged register 2 N/A */
__IO_REG8    (CAN_P2,      0x542A, __READ_WRITE);
/* CAN paged register 3 N/A */
__IO_REG8    (CAN_P3,      0x542B, __READ_WRITE);
/* CAN paged register 4 N/A */
__IO_REG8    (CAN_P4,      0x542C, __READ_WRITE);
/* CAN paged register 5 N/A */
__IO_REG8    (CAN_P5,      0x542D, __READ_WRITE);
/* CAN paged register 6 N/A */
__IO_REG8    (CAN_P6,      0x542E, __READ_WRITE);
/* CAN paged register 7 N/A */
__IO_REG8    (CAN_P7,      0x542F, __READ_WRITE);
/* CAN paged register 8 N/A */
__IO_REG8    (CAN_P8,      0x5430, __READ_WRITE);
/* CAN paged register 9 N/A */
__IO_REG8    (CAN_P9,      0x5431, __READ_WRITE);
/* CAN paged register A N/A */
__IO_REG8    (CAN_PA,      0x5432, __READ_WRITE);
/* CAN paged register B N/A */
__IO_REG8    (CAN_PB,      0x5433, __READ_WRITE);
/* CAN paged register C N/A */
__IO_REG8    (CAN_PC,      0x5434, __READ_WRITE);
/* CAN paged register D N/A */
__IO_REG8    (CAN_PD,      0x5435, __READ_WRITE);
/* CAN paged register E N/A */
__IO_REG8    (CAN_PE,      0x5436, __READ_WRITE);
/* CAN paged register F N/A */
__IO_REG8    (CAN_PF,      0x5437, __READ_WRITE);
wmwei1989 回答时间:2018-10-31 08:37:16
zcl201207 发表于 2018-10-29 20:08
STVD 里是有这些寄存器头文件的,IAR没怎么用不太清楚。。。

是上面那部分代码吗?但是貌似不止这些寄存器,我用的函数库中的头文件去做了,看了下函数库的stm8s.h中的寄存器定义,远远不止这些寄存器,是不是还需要我自己再去补充?
wmwei1989 回答时间:2018-10-31 16:47:05
wmwei1989 发表于 2018-10-31 08:37
是上面那部分代码吗?但是貌似不止这些寄存器,我用的函数库中的头文件去做了,看了下函数库的stm8s.h中 ...

http://www.openedv.com/forum.php ... =page%3D1#pid896649
wmwei1989 回答时间:2018-11-6 08:31:38
CAN寄存器有一部分是公用内存的,这点从datasheet中就可以看到,如图,只是在原始的头文件中,命名没有对应而已,这点可以从库函数的头文件中看到,库函数stm8s.h头文件中,定义的这部分寄存器采用的联合体声明,而要配置这些寄存器需要先配置页,再去设置相应的寄存器。
CAN寄存器映射图.jpg
CAN寄存器映射图2.jpg
CAN原始头文件寄存器定义.jpg
库函数寄存器定义1.jpg
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版