查看: 3458|回复: 10

[已解决] MKL15中宏定义&其他(已解决)

[复制链接]

该用户从未签到

4

主题

16

帖子

0

注册会员

Rank: 2

积分
64
最后登录
2014-12-11
发表于 2014-11-11 10:34:27 | 显示全部楼层 |阅读模式
本帖最后由 ninimi 于 2014-11-12 11:18 编辑

问题一:下列宏定义中 ((base)->PCR[index]) 和 ((base)->GPCLR) 分别是什么意思?
#define PORT_PCR_REG(base,index)                ((base)->PCR[index])
#define PORT_GPCLR_REG(base)                    ((base)->GPCLR)

问题二:地址前加(PORT_MemMapPtr)作何解释?强制转化?
#define PORTA_BASE_PTR                          ((PORT_MemMapPtr)0x40049000u)

问题三:(uint32_t)~(uint32_t)中"~"是什么意思?(uint32_t)~(uint32_t)怎么讲?
SIM_SOPT1 &= (uint32_t)~(uint32_t)(SIM_SOPT1_OSC32KSEL(0x03));
PORTA_PCR4 = (uint32_t)((PORTA_PCR4 & (uint32_t)~(uint32_t)(
                PORT_PCR_ISF_MASK
               )) | (uint32_t)(
                PORT_PCR_MUX(0x07)
               ));

我知道答案 目前已有10人回答
回复

使用道具 举报

该用户从未签到

4

主题

16

帖子

0

注册会员

Rank: 2

积分
64
最后登录
2014-12-11
 楼主| 发表于 2014-11-11 10:35:53 | 显示全部楼层
请教诸位大神,求回复!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-11 10:52:51 | 显示全部楼层
    楼主你好
    如果你只是为了学会如何通过操作寄存器方式使用KL15芯片,那么只需直接操作头文件里的寄存器名称即可。

    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-11 10:54:13 | 显示全部楼层
    本帖最后由 FSL_TICS_Robin 于 2014-11-11 10:55 编辑
    FSL_TICS_Robin 发表于 2014-11-11 10:52
    楼主你好
    如果你只是为了学会如何通过操作寄存器方式使用KL15芯片,那么只需直接操作头文件里的寄存器名称 ...

    那些宏定义只是要将寄存器名称和寄存器地址联系起来,以便你在函数里操作PORTA_BASE_PTR方便你编程。
    如果你直接操作寄存器地址,那么后面看起来就很麻烦了。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-11 10:58:17 | 显示全部楼层
    问题三:(uint32_t)~(uint32_t)中"~"是什么意思?(uint32_t)~(uint32_t)怎么讲?
    SIM_SOPT1 &= (uint32_t)~(uint32_t)(SIM_SOPT1_OSC32KSEL(0x03));

    (uint32_t)~(uint32_t)这么看,要这么看:~(uint32_t)(SIM_SOPT1_OSC32KSEL(0x03))
    (uint32_t)只是强制类型转换
    ~就是逐位取反

    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    16

    帖子

    0

    注册会员

    Rank: 2

    积分
    64
    最后登录
    2014-12-11
     楼主| 发表于 2014-11-11 11:08:39 | 显示全部楼层
    FSL_TICS_Robin 发表于 2014-11-11 10:58
    问题三:(uint32_t)~(uint32_t)中"~"是什么意思?(uint32_t)~(uint32_t)怎么讲?SIM_SOPT1 &= (uint32_t)~( ...

    哦哦哦,sogar ,明白,Thank you
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    16

    帖子

    0

    注册会员

    Rank: 2

    积分
    64
    最后登录
    2014-12-11
     楼主| 发表于 2014-11-11 11:12:07 | 显示全部楼层
    FSL_TICS_Robin 发表于 2014-11-11 10:54
    那些宏定义只是要将寄存器名称和寄存器地址联系起来,以便你在函数里操作PORTA_BASE_PTR方便你编程。
    如果 ...

    想写程式,可是刚开始,无从下手,所以来研究一下的。上述是追踪中发现的不懂之处。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    16

    帖子

    0

    注册会员

    Rank: 2

    积分
    64
    最后登录
    2014-12-11
     楼主| 发表于 2014-11-11 11:13:51 | 显示全部楼层
    FSL_TICS_Robin 发表于 2014-11-11 10:52
    楼主你好
    如果你只是为了学会如何通过操作寄存器方式使用KL15芯片,那么只需直接操作头文件里的寄存器名称 ...

    我还在研究他每个寄存器的作用。我现在需要写SHT21的程式。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-11 11:26:20 | 显示全部楼层
    ninimi 发表于 2014-11-11 11:13
    我还在研究他每个寄存器的作用。我现在需要写SHT21的程式。

    操作寄存器写IIC程式请参考:
    手把手学会官方例程<三>:Kinetis 100MHz I2C
    手把手学习官方例程第二十四篇 Kinetis 120MHz 主频芯片 I2C

    调用库函数形式写IIC程式请参考:
    手把手学会官方例程<十三>:KL25 加速度传感器PE例程

    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    16

    帖子

    0

    注册会员

    Rank: 2

    积分
    64
    最后登录
    2014-12-11
     楼主| 发表于 2014-11-11 11:31:26 | 显示全部楼层
    FSL_TICS_Robin 发表于 2014-11-11 11:26
    操作寄存器写IIC程式请参考:
    手把手学会官方例程:Kinetis 100MHz I2C
    手把手学习官方例程第二十四篇 Kin ...

    多谢啊,一定好好学习!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 06:26 , Processed in 0.107092 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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