查看: 3403|回复: 9

[原创] KL27小经验之谈

[复制链接]
  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2016-3-21 16:00:23 | 显示全部楼层 |阅读模式
    拿到板子至今已有3天多,大约做了约8小时实验——当然包括看手册和编程的各种.c.h资料。要想快速上手——排除寄存器编程,较快的方法是:
    从LED开始入手——这个程序Include不多,开始学习起来容易,并且有信号显示比较直观。之后将主程序的I/O口设置移出到外围建一个ioItial()函数以供调用,当然其他的也都可以如法刨制。
    之后就是复制的方案,基本思路如下:
    比如想学习ADC,就打开这个项目,与LED并列在项目栏中;先打开此项目的main.c,将Include拷贝到LED的main中[最好复制一个,以防万一],查看缺少那个就增加那个,我增加了:#include "adc.h"、#include "dma.h"、这两个;而后看著程序中那些是需要增加的,主要的就是ADC初始化程序,之后就可以测试了,实际上一运行就报错的,还需要将adc.c和dma.c加入到LED项目的devices目录中,此后在运行就不会报错了,再改改printf函数,将ADC数值输出即可。
    基本上可以得出这样的步骤:
    1.并列打开两个项目,打开各自的main[实际上我的LED早该成12864.c了];
    2.将后一个项目的include拷贝到前一个,比较厚删除相同的,保留不同的;
    3.将需要的初始化函数拷贝的对应的地方——我市将他要么在ioIntil()中,要么在main()中;
    4.看看此项目完成需要运行哪些函数,拷贝到main()的对应位置,比如while(1)中;
    5.将增加的include文件对应的.c文件ADD到devices目录中;
    6.如果需要输出显示什么的就改改printf函数,输出结果。
    以上就完成可一个新项目的测试实验。如果想进一步,就打开system_MKL27Z4.c,MKL27Z4.c[包括对应的.h]这几个文件和,以及include.h[对应的.c]。因为.h文件多为描述系统模块变量的定义和函数定义,.c里面才是描述模块函数的执行的过程。这样学习起来快很多。感觉先弄个LCD显示了,在做实验可以直接在LCD上出结果更好些。
    我就是先完成LCD显示,之后再增加其他内容实验测试的。我的程序现在已经包含了几乎所有的想做的实验。不想运行的只需要将他的初始化注释了就Ok了。需要注意的就是I/O口太少,多个实验迭加时,那个删除用那个口需要斟酌考虑——参考.h就十分有意义了。

    评分

    参与人数 1NXP金币 +15 收起 理由
    小七 + 15 打赏!谢谢

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-12 00:23
  • 签到天数: 745 天

    连续签到: 1 天

    [LV.9]以坛为家II

    27

    主题

    1万

    帖子

    26

    金牌会员

    Rank: 6Rank: 6

    积分
    6868
    最后登录
    2020-7-15
    发表于 2016-3-21 19:40:11 | 显示全部楼层
    谢谢楼主的经验,我这也准备开工了。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    40

    主题

    500

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1089
    最后登录
    2025-1-13
    发表于 2016-3-22 09:21:23 | 显示全部楼层
    不错的!谢谢分享!!!!!
    xingxiny75@gmail.com.png
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    132

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    418
    最后登录
    2018-12-14
    发表于 2016-3-22 14:20:45 | 显示全部楼层
    谢谢分享!!!!
    回复

    使用道具 举报

    该用户从未签到

    7

    主题

    178

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    401
    最后登录
    2019-7-20
    发表于 2016-3-22 14:39:02 | 显示全部楼层
    经验很重要!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-3-26 09:40
  • 签到天数: 23 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    2

    主题

    63

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    348
    最后登录
    2021-3-17
    发表于 2016-12-13 18:56:24 来自手机 | 显示全部楼层
    楼主留个QQ,有问题请教你。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
     楼主| 发表于 2016-12-14 06:05:24 | 显示全部楼层
    kiri 发表于 2016-12-13 18:56
    楼主留个QQ,有问题请教你。

    879691593,但我上qq的时间远少于在技术网站的时间,谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-3-26 09:40
  • 签到天数: 23 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    2

    主题

    63

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    348
    最后登录
    2021-3-17
    发表于 2016-12-15 11:29:05 来自手机 | 显示全部楼层
    zhjb1 发表于 2016-12-14 06:05
    879691593,但我上qq的时间远少于在技术网站的时间,谢谢

    以前没接触过ARM,入手KL27两个月例程看的似懂非懂,感觉学习效率不好,求楼主指导,给点建议。多谢!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
     楼主| 发表于 2016-12-15 15:20:44 | 显示全部楼层
    kiri 发表于 2016-12-15 11:29
    以前没接触过ARM,入手KL27两个月例程看的似懂非懂,感觉学习效率不好,求楼主指导,给点建议。多谢! ...

    您好!其实我也没有更好的方法,但觉得可用。就像第一个文说的那样。我的开发平台是IAR7.5,网上下载的KL27实例。
    下载KL27实例,打开文件夹得到下图。比较多见的就是点亮LED——初学者必备——结果可见,又可看看语法语句。
    我的实验是利用学习LED——说白了就是看他是如何控制IO口的,依葫芦画瓢,就按照模拟串口驱显黑白LCD——也就是控制IO口的高低实现将黑白LCD驱显,这个实验还是在LED实例中,最多可以看看gpio.h文档增加对GPIO设置的理解。
    当这个程序出来后,就相当于有了一个直窥MCU的窗口——通过它可以将一些数据直接显示出来,这一步对理解GPIO很有用,并且学会了时序的一些方法——因为模拟串口需要模拟串口时序的。
    接着就是测试ADC——字母靠前,自然就选了它,打开这个项目,与LED并列在项目栏中;先打开此项目的main.c,将ADC需要的Include拷贝到LED的main中[最好复制一个,以防万一],查看缺少那个就增加那个,我增加了:#include "adc.h"、#include "dma.h"、这两个;而后看着程序中那些是需要增加的,主要的就是ADC初始化程序,之后就可以测试了,实际上一运行就报错的!因为还需要将adc.c和dma.c加入到LED项目的devices目录中,此后在运行就不会报错了,再改改printf函数,将ADC数值输出即可。
    当ADC正常后,就可以接着按照喜欢或关心的功能继续实验。
    基本上可以得出这样的步骤:
    1.原来打开项目,再打开想要实验的新项目,打开各自的main[为了保留已通过的,最好复制1个备份,改名后继续实验];
    2.将后一个项目的include拷贝到前一个,比较后删除相同的,保留不同的;
    3.将需要的初始化函数拷贝的对应的地方——我是将他要么在ioIntil()中,要么在main()中;
    4.看看此项目完成需要运行哪些函数,拷贝到main()的对应位置,比如while(1)中或while(1)前边;
    5.将增加的include文件对应的.c文件添加到本项目的devices目录中;
    6.如果需要输出显示什么的就改改LCD显示程序和printf函数,输出结果。
    以上就完成可一个新项目的测试实验。如果想进一步,就打开system_MKL27Z4.c,MKL27Z4.c[包括对应的.h]这几个文件和,以及include.h[对应的.c]。因为.h文件多为描述系统模块变量的定义和函数定义,.c里面才是描述模块函数的执行的过程。这样学习起来快很多。


    KL27mini实例目录

    KL27mini实例目录
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-3-26 09:40
  • 签到天数: 23 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    2

    主题

    63

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    348
    最后登录
    2021-3-17
    发表于 2016-12-15 17:06:08 来自手机 | 显示全部楼层
    zhjb1 发表于 2016-12-15 15:20
    您好!其实我也没有更好的方法,但觉得可用。就像第一个文说的那样。我的开发平台是IAR7.5,网上下载的KL ...

    多谢指教。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-18 22:10 , Processed in 0.108082 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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