查看: 2075|回复: 0

野火miniRT1052 试用 (二)流水灯

[复制链接]
  • TA的每日心情
    开心
    2019-6-20 14:08
  • 签到天数: 43 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2018-6-19 08:46:22 | 显示全部楼层 |阅读模式
    分享到:
    零零散散的在一周里挤出些时间阅读、熟悉NXP的代码编程风格,怎么来说呢,与之前所看的NXP代码真是天壤之别(也许这是FSL的风格吧,之前没有玩过FSL的板子),最感到别扭的就是引脚的命名。举例来说,在miniRT1052上RGB灯的其中的R连接至标号GPIO_AD_B1_08(这还仅仅是原理图上的标号,而在库中的引脚标号为IOMUXC_GPIO_AD_B1_08_GPIO1_IO24),这地方和一般单片机差异比较大 ,众所周知一般单片机都是以GPIO命名的, 而RT1050系列则另起炉灶,以某一复用功能来命名!这些引脚信息可以在文件fsl_iomuxc.h中查找到。如下图1所示。

    图1   fsl_iomuxc.h文件节选
    光看GPIO_AD_B1_08引脚,图中红色框中就是其起作用的各种接口功能,而蓝色字体是提前初始化好的值,这点给FSL的设计思路给个赞!
    我这里想实现一个流水灯实验,预想通过6个GPIO引脚来实现,现在总结下工作步骤。
    1. 通过野火的miniRT1052底板原理图查看需要使用的引脚名,如下图2所示。

                             图2  miniRT1052底板原理图节选
    这里我选取了底板CN4部件里的编号1、2、3、8、10、14引脚,当然可以选其他的,我这里是图了个方便;但是带来了个不便得地方就是原先想通过ram_debug方式运行程序,但是因为占用了JTAG_TCKJTAG_TMS引脚,所以在DEBUG时DAP报错了,于是我就采用了FLASH方式,还好程序比较简单,如果是其他应用程序,建议最好避过这2个引脚。(至于JTAG_TDI具体的引脚名,我是在fsl_iomuxc.h文件中通过ctrl+F找到的,并选中其对应功能)
    2. 根据野火的点LED灯程序,进行软件方面的更改。
    (1) 根据引脚号定义GPIO控制相关的宏;

    这里采用了野火的风格定义了流水灯所需要的6个引脚的命名
    (2)使用IOMUXC 外设配置MUX 及PAD、GPIO外设配置转换速度、IO速度、驱动能力、引脚方向及中断模式等。这里是从LED_GPIO_Config()函数入手依次照猫画虎般的对应修改。

    (3)编写流水灯程序
    (4)效果如下视频所示。
    https://v.youku.com/v_show/id_XMzY2ODg3Njg4OA==.html?spm=a2hzp.8244740.0.0
    3. 总结如下:
    (1)GPIO输出编程工作主要在于MUX 配置函数、PAD属性函数以及GPIO模式配置函数这几部分。
    (2)RT1052的 IO口总共分成 5组: GPIO1~GPIO5,其中:GPIO1、GPIO2和 GPIO4每组 32个 IO,GPIO3只有 28个 IO,GPIO5最少,只有 3个 IO,这样总共是 127个 IO口。而这些IO口通过一个叫IOMUXC的 IO复用选择器来具体的外设功能,对于 RT1052的一个 IO,最多可能连接到8种外设上面(这就是为什么初始化时操作IOMUXC的原因,具体连接可以查看《IMXRT1050RM》(参考手册),有GPIO的结构框图)。
    (3)IOMUXC_SetPinMux函数 --- 此函数是用来设置 IO的复用选择 器,用来选择IO的 功能
    (4)IOMUXC_SetPinConfig函数 --- 此函数用来配置IO的驱动能力、 速度 等这些的
    (5)GPIO_PinInit函数 --- 此函数用来设置指定GPIO引脚的功能,比如初始化GPIO输入还是输出? 用不用中断?默认电平什么?
    (6)GPIO_PinWrite函数 --- 设置指定的  GPIO的输出电平
    (7)GPIO_PinRead函数 --- 此函数用于读取一个指定 IO的电平
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-4-16 16:19 , Processed in 0.113457 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.