查看: 3538|回复: 4

[分享] 关于MAPS四色板K64——GPIO配置与问题解决

[复制链接]
  • TA的每日心情
    奋斗
    2017-2-13 08:29
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    531

    主题

    2048

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    210
    最后登录
    2018-8-14
    发表于 2016-7-5 09:54:41 | 显示全部楼层 |阅读模式
    项目1描述:利用电位计控制PWM输出去控制一个LED灯的亮度。


    项目关键点1:由于 MAPS_K64_KSDK_1.0.0里面有adc_potentiometer(电位计ADC)和ftm_pwm的demo程序,我们要做的就是读懂 这两个示例程序,把我们要用的部分摘取出来(毕竟是demo,里面有很多我们不必用到的)再结合在一起。


    adc_potentiometer示例程序关键点:在示例程序里面已经写好了get_Voltage()函数直接能得到AD采样的结果,我们可以直接用 这个函数的返回值MyAdcValue转换为pwm的占空比这样就能实现对灯亮度的控制。不过需要注意的是这个返回值是12位的数据(4096)需要转换 后才能变成0到100的占空比(ftmParam.uDutyCyclePercent=(MyAdcValue*100)/4096);


    ftm_pwm示例程序把整个pwm都设置好了,直接调整占空比就能控制LED灯的亮的程度.当然要用飞线把pwm输出引脚PTA4接到LED灯的引脚上。


    项目2描述:利用Joystick的不同按键在LCD屛上显示出不同的图片。


    设计思路:分别调通Joystick的功能与LCD显示功能,再整合到一个程序里。


    Joystick调试出现的问题与解决:
    问题1:GPIO配置问题。
    要 读取Joystick不同按键的按下引起的电平变化首先要配置好GPIO。而在SDK里面并没有给出GPIO相关的demo。不过有一个 KinetiSDK_API_Reference_Manual文档可以参考。(这份文档不是专门为K64写的所有会有一些参数上的差异)因为以前也没有 接触过,就按照这份文档上的一步一步进行配置。接下来就是各种问题出现了。
    GPIO配置问题1.1:在K64里提供了Drive层和Hal 层配置。Drive层会比较简单,Hal层的能操纵到寄存器,功能较为强大。我先用Drive层进行配置,按照文档上的提示,第一步定义引脚名字,以Up 键为例:在board 文件夹下的gpio.h中的enum_gpio_pins_pinNames里面写下 Up=GPIO_MAKE_PIN(HW_GPIOA,24U),然后在gpio.c里面对引脚进行初始化配置:

    这里按默认的配置即可。
    之 后在main函数里面配置引脚的方向 GPIO_DRV_SetPinDir(Up,kGpioDigitalInput); 然后进行初始化 GPIO_DRV_InputPinInit(JoystickPin);就能对这个GPIO 口进行读取。结果这么读取都不成功。原因是GPIO没有正确配置。最后试出来是除了上面写的配置外还要配置两个函数。完整地配置还要加上端口时钟时能 SIM_HAL_EnablePortClock(SIM_BASE,GPIO_INSTANCE),和管脚复用的说 明:PORT_HAL_SetMuxMode(PORTA,Up, kPortMuxAsGpio);这样就将Up引脚配置好了。该吐槽的是,以上的两个配置在这份资料里根本没有提到。
    接下来就一起把 Joystick的其他管脚按上面的描述配置好,然后调用GPIO_DRV_InputPinInit(JoystickPin);还是有问题,只有Up 键能工作,其他的还是没有配置成功。原因是GPIO_DRV_InputPinInit(JoystickPin);只初始化了第一个管脚,其他的都没有 初始化。解决的办法是使用结构体指针将所有的管脚初始化一遍
    gpio_input_pin_user_config_t *addr=JoystickPin;
    for(i=0;i<4;i++)
    {
    GPIO_DRV_InputPinInit(addr++);
    }
    到此所有的管脚就都能正常工作了。
    接下来想用GPIO的中断来实现图片的显示,一看手册,是这样的:

    我一直往下翻,结果让我想起了一个段子:甲说:我给你讲一个故事,从前有个太监…… 乙说:下面呢? 甲说:没有了。无语……无奈只好去看手册写的中断,呵呵,看完之后一头雾水,完全不知道该怎么配置中断,实在是太不友好了。还是老老实实读取IO口的值做判断吧。。。
    LCD屛的显示问题:由于MAPS四色板上提供的LCD只能显示320*240的图片每个像素用16比特,所以你得先把图片裁剪成320*240的格式,再用Image2LCD软件转化为C数组使用,设置如下图所示:

    记得选择为16位真彩色,因为LCD的每个像素是2个比特,16位表示的。
    接下来再分享一些调试中遇到的问题:
    Problem1:Problem1:fate error: can not connect to J-Llink via usb.
    sol:换个USB口插线。
    Problem2: 烧录时界面一直停留在starting debugger session.打开设备管理器,还出现了2个JLink设备……


    Sol:在网上查阅了很多资料后,最后确定了最简单的解决方案:重启!重启之后上面的两个问题就都解决了。


    PS:希望以上提到的调试过程中遇到的小问题以及解决方法能给接触MAPS四色板的同学一些帮助。同时希望飞思卡尔能出一个详细介绍各个 外设的配置流程,而不是只给出一个API的文档,这样对于开发者会更加友好,不用花很多时间在研究如何配置上面。





    签到 签到
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    65

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    233
    最后登录
    1970-1-1
    发表于 2016-7-5 16:02:14 | 显示全部楼层
    哈哈哈哈哈哈哈哈
    绝对不推荐去读这个什么 API_Reference_Manual , 多看看 demo 和 example 就行了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-2-13 08:29
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    531

    主题

    2048

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    210
    最后登录
    2018-8-14
     楼主| 发表于 2016-7-8 16:10:52 | 显示全部楼层
    wacaca 发表于 2016-7-5 16:02
    哈哈哈哈哈哈哈哈
    绝对不推荐去读这个什么 API_Reference_Manual , 多看看 demo 和 example 就行了 ...

    为什么
    签到 签到
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    8

    帖子

    0

    注册会员

    Rank: 2

    积分
    64
    最后登录
    2018-12-20
    发表于 2016-7-12 14:54:23 | 显示全部楼层
    二楼正解,这个Kinetis SDK API Reference Manual少了个关于外设功能实现的架构说明,罗列了一堆堆函数,没怎么好好用过K64的很难理解,还得去看数据手册。
    看看德国人的手册。
    Vector.JPG
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-1-4 08:05
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    85

    主题

    1629

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2569

    优秀版主

    最后登录
    2019-3-28
    发表于 2016-7-12 17:14:46 | 显示全部楼层
    没用过SDK1.0
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-18 14:54 , Processed in 0.101172 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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