查看: 3694|回复: 0

[原创] 【IRD-LPC1768-DEV】上电+开发环境配置+systick中断闪烁点灯

[复制链接]
  • TA的每日心情
    无聊
    2021-12-29 19:06
  • 签到天数: 47 天

    连续签到: 1 天

    [LV.5]常住居民I

    49

    主题

    188

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    1392
    最后登录
    2025-3-4
    发表于 2019-2-23 22:13:20 | 显示全部楼层 |阅读模式
    本帖最后由 day_day 于 2019-2-26 12:00 编辑

    (一)上电

    真的没有想到,有一天连上电都会麻烦,在上一张帖子里面我提到了捣鼓半天也没捣鼓出怎么把那个电源适配器装上。今天总算弄好了,只需要拿那个插头从上方撬开就行。
    上电之后发现例程的功能还是挺丰富的:
    1.jpg
    lcd屏幕上打印出温度的dc采样值,串口同样打印出来:
    2.png
    据说还能通过以太网口连接:
    3.png


    (二)开发环境配置
    首先在下载keil的pack包,由于最近国内keil官网的下载抽风了,科学上网也全部炸了,一时间束手无策。
    最后在社区大佬的帮助下成功弄到:求LPC1700的keil DFP pack


    (三)工程创建
    由于这款LPC1768似乎是后娘的型号,在支持上并没有主流的lpc8xx、lpc54xxx系列那么好(MCUXpresso Config Tools v4.0都没有这个型号的配置工具),各种包也难找,于是乎完全依赖起强大的keil。
    如下选择上几个支持文件:
    4.png
    5.png
    添加基本的main文件+main函数之后发现编译有error,一些系统性的头文件缺失,展示来说我是直接添加头文件路径,指向keil安装的支持包:C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.4.0\CMSIS\Core\Include


    (四)点亮led
    led硬件:
    在光盘里面的Industrial Platform 1v3 schematics,看到一个能够直接通过IO控制的led是右下角那颗程序运行指示灯heartbeat
    7.png
    对应核心板上面的接口,在文件LPC1766 Core 1v0 PCB内:
    8.png


    一开始写程序完全没有思路,打开pack installer,copy了一个example过来:
    6.png
    这个工程的主要功能也是点灯,里面对led配置:
    1. /**
    2.   \fn          int32_t LED_Initialize (void)
    3.   \brief       Initialize LEDs
    4.   \returns
    5.    - \b  0: function succeeded
    6.    - \b -1: function failed
    7. */
    8. int32_t LED_Initialize (void) {
    9.   uint32_t n;

    10.   /* Enable GPIO clock */
    11.   GPIO_PortClock     (1);

    12.   /* Configure pins: Output Mode with Pull-down resistors */
    13.   for (n = 0; n < LED_COUNT; n++) {
    14.     PIN_Configure (LED_PIN[n].Portnum, LED_PIN[n].Pinnum, PIN_FUNC_0, PIN_PINMODE_PULLDOWN, PIN_PINMODE_NORMAL);
    15.     GPIO_SetDir   (LED_PIN[n].Portnum, LED_PIN[n].Pinnum, GPIO_DIR_OUTPUT);
    16.     GPIO_PinWrite (LED_PIN[n].Portnum, LED_PIN[n].Pinnum, 0);
    17.   }

    18.   return 0;
    19. }
    复制代码


    PIN_Configure:主要是配置端口的复用、输出模式之类的
    1. /**
    2.   \fn          int32_t PIN_Configure (uint32_t function) {
    3.   \brief       Set pin function and electrical characteristics
    4.   \param[in]   port       port number (0..3)
    5.   \param[in]   pin        pin number  (0..31)
    6.   \param[in]   function   port pin function
    7.   \param[in]   mode       port pin input mode
    8.   \param[in]   open_drain port pin open drain mode
    9.   \returns
    10.    - \b  0: function succeeded
    11.    - \b -1: function failed
    12. */
    复制代码


    GPIO_SetDir:配置端口的方向
    1. /**
    2.   \fn          void GPIO_SetDir (uint32_t port_num,
    3.                                  uint32_t pin_num,
    4.                                  uint32_t dir)
    5.   \brief       Configure GPIO pin direction
    6.   \param[in]   port_num   GPIO number (0..4)
    7.   \param[in]   pin_num    Port pin number
    8.   \param[in]   dir        GPIO_DIR_INPUT, GPIO_DIR_OUTPUT
    9. */
    复制代码


    GPIO_PinWrite配置端口的电平,类似GPIO_SetDir就不多说了
    例程也没用常见的delay方法闪烁led,而是用systick中断。配置方法也相当简洁,就一个SysTick_Config,但不知道为什么SysTick_Config的原型没找到,core_cm3中断 SysTick_Config被条件编译过滤掉了,此外就没有声明过SysTick_Config,这点让我有些懵。
    服务函数:
    1. void SysTick_Handler (void) {
    2.         static unsigned int i=0;
    3.         i++;
    4.         i = i%100;
    5.         if(i == 0)
    6.         {
    7.                 GPIO_PinWrite(0, 7, 0);
    8.         }
    9.         else if(i == 50)
    10.         {
    11.                 GPIO_PinWrite(0, 7, 1);
    12.         }
    13. }
    复制代码


    systick装载配置为SystemCoreClock/100。
    这个值是否合理,先考究一下,打开:
    9.png
    里面提到systick是一个24bit的寄存器:
    10.png
    最大可以装载起15M左右的值。这个系统时钟最多100M,/100后最多1M,完全可以。


    编译下载运行:
    vid_20190223_212014[00_00_00--00_00_01].gif

    仿真查看系统时钟:
    11.png


    代码: main.rar (390 Bytes, 下载次数: 5)
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 23:31 , Processed in 0.081529 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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