[KungFu32位 MCU] KF32-c语言使用-特殊功能寄存器的操作

[复制链接]
1074|7
 楼主| HuangHongLun 发表于 2020-8-25 19:42 | 显示全部楼层 |阅读模式
4.1 简介
本章主要介绍 C 语言和汇编语言中如何访问特殊功能寄存器。
4.2 特殊功能寄存器的操作
特定于处理器的头文件是一些包含了在 C 或汇编语言中使用的特殊功能寄存器(Special Function Register, SFR)的外部声明的文件。依照约定,每SFR 都使用数据手册中的相同名称进行命名,OSC_CTL1 代表振荡器控制寄存器 1。定义结构以实现寄存器的位声明,如_HFCLKCAL。同时约定前面添加前缀“_”。举例,地址为 0x40000004 的特殊功能寄存器 OSC_CTL1C 头文件的声明如下


106545f44f9253be17.png
14635f44f93141053.png

 楼主| HuangHongLun 发表于 2020-8-25 19:43 | 显示全部楼层
KF32 芯片特殊功能寄存器为芯片固定地址,且芯片支持 32 位地址空间访 问,故 SFR 仅需在头文件中将其地址声明。如上所述,KF32 芯片的每一个 SFR 都被定义为一个结构(联合体),其中 reg 为 32 位数据访问,bits 可访问一组 位,bit 可访问每一个位。 特殊功能寄存器OSC_CTL1在汇编头文件的声明如下:
165525f44f96431c1c.png
 楼主| HuangHongLun 发表于 2020-8-25 19:44 | 显示全部楼层
在应用程序中使用 SFR 时,需要执行 2 个步骤。
879585f44f9847de68.png
 楼主| HuangHongLun 发表于 2020-8-25 19:44 | 显示全部楼层
zeshoufx 发表于 2020-8-27 09:20 | 显示全部楼层
谢谢分享【KF32-c语言使用】
哈根达斯uz 发表于 2020-10-30 23:53 来自手机 | 显示全部楼层
c语言的
heisexingqisi 发表于 2021-1-14 22:06 | 显示全部楼层
终于看到位段的应用了。
詹求实 发表于 2021-1-15 12:04 | 显示全部楼层
特定于处理器的头文件是一些包含了在 C 或汇编语言中使用的特殊功能寄存器(Special Function Register, SFR)的外部声明的文件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

440

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部