查看: 2595|回复: 1

[分享] OKDO_LPC55S69上手指南(上)

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3300

    主题

    6547

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32034
    最后登录
    2024-4-26
    发表于 2020-9-10 09:22:18 | 显示全部楼层 |阅读模式
    OKDO_LPC55S69上手指南(上)


    今天继续为大家介绍OKDO_LPC55S69开发板的上手教程,主要涉及UART, USB, 板子上的按键和三色LED灯:
    1.png


    前情回顾


    在OKDO_LPC55S69 上手指南(上)中,我们介绍了入手OKDO开发板的最基本四步,并顺利的把SDK中的led_blinky 示例代码下载到开发板中(小灯闪烁)。回忆一下,还记得哪4步么~?


    答:
        1.从NXP官方网站下载并安装MCUXpressoIDE。
        2.从MCUXpressoIDE中下载LPC55S69的SDK(最新版本为2.8.0)。
        3.导入SDK,导入led_blinky 代码,编译工程。
        4.通过MicroUSB线连接板子和PC,下载led_blinky 代码到板子并开始调试。


    本文主要内容


    1.介绍下led_blinky中的代码
    2,。继续实验SDK中的两个实例代码: hello_world和usb_hid_device_mouse,加深对SDK,IDE编译下载等步骤的理解。
    3.修改SDK中的led_blinky的代码,实现按键控制流水灯。


    Led_blinky代码讲解
    2.png
    这段代码就是led_blinky的主要实现了,流程如下:


    1.程序从main进来后, 调用GPIO_PortInit来实现一个GPIO引脚的初始化
    2.POWER_SetBODBbatLevel,BOARD_InitPins和SystemCoreClockUpdate都是SDK的库函数,目的是为了初始化MCU引脚,设置复位检测阈值和计算MCU内核频率。这些函数在SDK的所有例程中几乎都会出现,后面会详细介绍

    3.调用SysTick_Config来启动Systick定时器,并产生超时中断。
    4.在while(1)中对超时中断进行计数, 当计数累加到一秒时,翻转LED的电平,实现小灯闪烁效果。


    下载并运行HelloWorld实例


    HelloWorld一般都作为入手一个新开发板的第一个工程。这里之所以作为第二个工程来讲解是因为led_blinky工程更简单,一句代码都不需要改,相对于HelloWorld更容易成功。


    在MCU中,HelloWorld打印一般是MCU通过串口向PC传输字符串实现。OKDO上自带的仿真器具备USB转串口功能。首先打开PC的任务管理器,检查下调试器的USB转串口是否工作正常:


    1.和上节一样的操作,通过MicroUSB先连接OKDO开发板和PC
    2.打开设备管理器,找到Ports(COM & LPT)一项,查看是否有”NXP LPC11Uxx VCOM”的设备,并记住后面的COM口号(不同的PC COM口号一般不同)
    3.png
    打开MCUXpressoIDE 导入HelloWorld工程(操作和上一次的led_blinky一样):注意在Project Options中选择UART。这样程序中的PRINTF才会默认打印到串口上。
    4.png
    4.修改时钟:在上一篇文章中我们提过,由于OKDO板子默认没有焊接LPC55S69的外部晶振,而SDK中大部分demo都会默认使用外部晶振作为时钟源,所以我们将MCU时钟源修改为内部96MHz高频时钟,只需要修改一句话:将clock_config.c中的 BOARD_BootClockPLL150M 替换为BOARD_BootClockFROHF96M即可:
    5.png
    5.打开一个串口终端,使用115200-N-8-N-1方式打开调试器的COM串口,然后编译下载程序并运行。一切正常的话,会在终端打印Hello world. 并且终端会回显(echo)任何输入的字符,至此Hello_world程序运行成功!
    6.png


    下载并运行USB鼠标实例


    硬件部分:


    OKDO上有两个USB接口,一个是我们一直在用Debug口,另外一个是LPC55S69的USB口。LPC55S69有两个USB口,一个全速,一个高速,ODKO开发板可以通过跳线的方式将USB socket连接到全速或高速USB上。如下图所示:
    7.png
    因为高速USB必须用到外部时钟,所以需要用烙铁将这两个电阻改焊到USB0的位置。
    软件部分:
    1.打开usb_examples下面的dev_hid_mouse_bm工程。
    8.png
    2.和HelloWorld类似将BootClock函数由外部时钟改为内部时钟(如下图),并编译,下载运行。
    9.png
    3.将MircoUSB切换到LPC55S69的USB口上,复位MCU,这时候会看到鼠标在上下左右移动,说明程序成功运行。


    实现一个按键流水灯


    OKDO上除了RESET按键外,还有三个按键,另外正好板子上有三色流水灯,我们来做个练习,使用三个按键分别控制三个颜色的流水灯:


    三个LED对应的引脚分别是:PIO1_4, PIO1_6, PIO1-7
    三个按键对应的引脚分别是:PIO1_9, PIO1_18, PIO0_5


    使用上一篇的led_blinky代码作为模板,只要添加如下代码即可:


    初始化:
    代码很简单,只是在led_blinky的基础上增加调用SDK将三个按键和三个LED分别设置为输入和输出即可:
    10.png
    While(1)的部分就更简单了,使用GPIO_PinRead读取按键的电平,点亮对应的LED即可。这里为了demo起见没有考虑按键消抖,中断检测之类的。毕竟我们的目的是入门OKDO板子和熟悉LPC55S69。
    11.png
    最后附上这个demo效果的一个小视频:
    购买渠道
    OKDO E1开发板购买链接
    Arduino连接器购买链接

    文章出处:恩智浦MCU加油站

    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 10:32
  • 签到天数: 1279 天

    [LV.10]以坛为家III

    21

    主题

    1万

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    13245
    最后登录
    2024-4-26
    发表于 2020-9-29 10:42:03 | 显示全部楼层
    打卡学习签到
    微信图片_20200929104134.png
    跟着日天混 ,三天饱九顿!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-27 19:39 , Processed in 0.128645 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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