IMAX6ULL正点原子学习笔记(led汇编驱动)

参考资料:IMAX6ULL参考手册

1.使能时钟

参考手册中,Chapter 18​: Clock Controller Module (CCM),CCM_CCGRx(0~6)寄存器负责所有的外设时钟

CCGR0的地址为:Address: 20C_4000h base + 68h offset = 20C_4068h,往后寄存器依次便宜4个字节

打开所有的外设时钟

    @开启时钟 18章 CCGR0-CCGR6  32位的寄存器
    @CCGR0 地址 20C_4068h
    ldr r0,=0x20c4068
    ldr r1,=0xFFFFFFFF
    str r1,[r0]

    ldr r0,=0x20c406C   @CCGR1
    ldr r1,=0xFFFFFFFF
    str r1,[r0]

    ldr r0,=0x20c4070   @CCGR2
    ldr r1,=0xFFFFFFFF
    str r1,[r0]

    ldr r0,=0x20c4074   @CCGR3
    ldr r1,=0xFFFFFFFF
    str r1,[r0]

    ldr r0,=0x20c4078   @CCGR4
    ldr r1,=0xFFFFFFFF
    str r1,[r0]

    ldr r0,=0x20c407c   @CCGR5
    ldr r1,=0xFFFFFFFF
    str r1,[r0]

    ldr r0,=0x20c4080   @CCGR6
    ldr r1,=0xFFFFFFFF
    str r1,[r0]

    @配置引脚复用为GPIO功能 IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03
    @31-5保留,4->0 0-3 --> 0101 gpio1
    ldr r0,=0x20e0068
    ldr r1,=0x5
    str r1,[r0]

2.IO复用,把GPIO1_IO03引脚 复用为GPIO

参考手册中,第32章,Chapter 32​: IOMUX Controller (IOMUXC),IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03的bit3~bit0设置为0101即为GPIO

寄存器的地址为:Address: 20E_0000h base + 68h offset = 20E_0068h

    @配置引脚复用为GPIO功能 IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03
    @31-5保留,4->0 0-3 --> 0101 gpio1
    ldr r0,=0x20e0068
    ldr r1,=0x5
    str r1,[r0]

3.配置GPIO1_IO03引脚电器属性(上下拉,驱动能力)

参考手册中,第32章,IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03的bit3~bit0设置为0101即为GPIO

寄存器的地址为:Address: 20E_0000h base + 2F4h offset = 20E_02F4h

bit0:压摆率 ----0----低速率

bit2~1:保留

bit5~3:驱动能力,数值越大,驱动能力越强----110----R0/6

bit7~6:速度----10----100MHz速度

bit10~8:保留

bit11:开漏输出----0----关闭开漏输出

bit12:Pull/Keeper使能----1----Pull/Keeper Enable

bit13:Pull/Keeper-----0-----keeperld

bit15~14:选择电阻----00----100k下拉

bit16:HYS----0----关闭

bit31~17:保留

设置最终值为:0x10B0

    ldr r0,=0x0X20E02F4
    ldr r0,=0x10B0
    str r1,[r0]

4.配置GPIO功能(GPIOx_GDIR)

参考手册中,第28章,Chapter 28​: General Purpose Input/Output (GPIO)中的GDIR寄存器-->输入还是输出

GPIO Memory Map/Register Definitio n中显示GPIO1_GDIR地址为0x0209c004

GPIO1_GDIR每一位代表一个IO,设置bit3为1,就是设置GPIO1_IO03为输出

    ldr r0,=0x0X209c004
    ldr r0,=0x8
    str r1,[r0]

5.设置GPIO输出高低电平(GPIOx_DR)

 GPIOx_DR地址为:Address: Base address + 0h offset=0x0209c0000

GPIOx_DR每一个bit代表一个IO

    ldr r0,=0x209c000
    ldr r1,=0x0
    str r1,[r0]

最后:接一个死循环,防止CPU跑飞

loop:
    b loop

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值