查看: 1352|回复: 3

[原创] LPC1768 Dev kit 开发板 + 2、加电测试

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 1318 天

    [LV.10]以坛为家III

    124

    主题

    2832

    帖子

    31

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    7575
    最后登录
    2024-4-27
    发表于 2019-2-14 08:46:44 | 显示全部楼层 |阅读模式
        看完手册,先加电看看板子运行情况。


       一、加电运行

        硬件连接上,我连接了5V电源和串口线。
        1.1、运行视频
        1.gif
        加电后,LED1~LED4顺序点亮,同时串口有数据输出
        1.2、串口输出数据:
        100.png


       
        二、硬件分析

        2.1、LED驱动电路
            LED1~LED4是通过PCA9551芯片来驱动的,使用的是I2C方式。
        101.png
        2.2、串口部分
        串口使用的是UART0通信
        102.png


        2.3、AD采样部分
        AD采样使用的是P0.25引脚对应的VAR1电位器
        104.png    

        三、程序部分
       
        开发板官网程序: LPC1768 Dev kit
        3.1、下载下面程序文件:
          103.png
        打开后,项目文件使用的低版本的KEIL开编译的,后续修改成高版本KEIL工程文件,这里只看下对应的主程序部分
       主程序:
       
    1. /******************************************************************************/
    2. /* BLINKY.C: LED Flasher                                                      */
    3. /******************************************************************************/
    4. /* This file is part of the uVision/ARM development tools.                    */
    5. /* Copyright (c) 2005-2006 Keil Software. All rights reserved.                */
    6. /* This software may only be used under the terms of a valid, current,        */
    7. /* end user licence from KEIL for a compatible version of KEIL software       */
    8. /* development tools. Nothing else gives you the right to use this software.  */
    9. /******************************************************************************/
    10.                   
    11. #include "Blinky.h"

    12. /* Function that initializes LEDs                                             */
    13. void InitLed (void) {
    14.   PINCON->PINSEL10 = 0;                      /* Disable ETM interface, enable LEDs */
    15.   GPIO0->FIODIR  = (1<<7);                   /* P0.7 defined as Outputs            */
    16. }

    17. void BlinkLed (void) {
    18.    /* Blink the LEDs on IRD board */
    19.    const INT8U LedValue[8] = { 0x01,0x03,0x07,0x0F,0x0E,0x0C,0x08,0x00 };
    20.    static INT32U LedCount;

    21.    I2cLedOut(LedValue[LedCount]);
    22.    if (++LedCount >= sizeof(LedValue)) {
    23.       LedCount = 0;
    24.    }
    25. }

    26. int main (void) {
    27.   INT32U i,j;
    28.   INT16U AdcValue, AdcPrintValue;

    29.   SystemInit();
    30.   InitLed();                                   /* LED Initialization          */

    31.   for (i=0;10>i;i++)
    32.   {
    33.      GPIO0->FIOSET |= (1<<7);
    34.      for (j=0;LED_DELAY>j;j++);
    35.      GPIO0->FIOCLR |= (1<<7);
    36.      for (j=0;LED_DELAY>j;j++);
    37.   }

    38.   /* Enable and setup timer interrupt, start timer                            */
    39. //  PCLKSEL0     |= (1 << 2);                    /* Timer0 PCLK = CCLK          */
    40.   TIM0->MR0         = 23999;                   /* 1msec = 24000-1 at 12.0 MHz */
    41.   TIM0->MCR         = 3;                       /* Interrupt and Reset on MR0  */
    42.   TIM0->TCR         = 1;                       /* Timer0 Enable               */
    43. ////  VICVectAddr4  = (INT32U)T0_IRQHandler;       /* Set Interrupt Vector        */
    44. ////  VICVectCntl4  = 15;                          /* use it for Timer0 Interrupt */
    45. ////  VICIntEnable  = (1 << 4);                    /* Enable Timer0 Interrupt     */
    46.   NVIC_EnableIRQ( TIMER0_IRQn );                  //// Enable Timer 0 IRQ


    47.   /* Power enable, Setup pin, enable and setup AD converter interrupt         */
    48.   SC->PCONP        |= (1 << 12);                   /* Enable power to AD block    */
    49.   PINCON->PINSEL1  |= 0x40000;                     /* AD0.2 pin function select   */
    50.   PINCON->PINMODE1 &= ~(0x03 << 18);               /* configure P0.25 as input    */
    51.   PINCON->PINMODE1 |= (0x02 << 18);
    52.   ADC->ADINTEN      = (1 << 2);                    /* CH2 enable interrupt        */
    53.   ADC->ADCR         = 0x00200304;                  /* Power up, PCLK/4, sel AD0.2 */
    54. ////  VICVectAddr18     = (INT32U)ADC_IRQHandler;      /* Set Interrupt Vector       */
    55. ////  VICVectCntl18     = 14;                          /* use it for ADC Interrupt    */
    56. ////  VICIntEnable      = (1 << 18);                   /* Enable ADC Interrupt        */
    57.   NVIC_EnableIRQ( ADC_IRQn );

    58.   InitI2c ();                                  /* Init I2C                    */
    59.   InitSerial();                                /* Init UART                   */

    60.   while (1) {                           /* Loop forever                       */
    61.     AdcValue = gAdcCurrentValue;        /* Read AD_last value                 */
    62.    
    63.     if (g1sCounter) {
    64.       g1sCounter = 0;
    65.       
    66.       if (GPIO0->FIOPIN & (1<<7)) GPIO0->FIOCLR |= (1<<7);
    67.       else GPIO0->FIOSET |= (1<<7);

    68.       AdcPrintValue = AdcValue;           /* Get unscaled value for printout    */
    69.       printf ("AD value = %d\n\r", AdcPrintValue);
    70.     }

    71.     if (0 == gLedFlashCounter) {
    72.        gLedFlashCounter = gAdcCurrentValue;
    73.        BlinkLed();
    74.     }
    75.   }
    76. }
    复制代码

        3.2、程序源码:
        IRD-LPC1768-DEV.zip (2.11 MB, 下载次数: 5)
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    前天 16:01
  • 签到天数: 1480 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92787
    最后登录
    2024-4-27
    发表于 2019-2-14 10:40:34 | 显示全部楼层
    动作真迅速啊~~
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 1318 天

    [LV.10]以坛为家III

    124

    主题

    2832

    帖子

    31

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    7575
    最后登录
    2024-4-27
     楼主| 发表于 2019-2-14 11:32:18 | 显示全部楼层

    有点时间就折腾
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2021-12-29 19:06
  • 签到天数: 47 天

    [LV.5]常住居民I

    49

    主题

    188

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    1371
    最后登录
    2024-3-21
    发表于 2019-2-22 21:14:53 | 显示全部楼层
    问一下啊,那个DC电源适配器是怎么掰开上面那个卡扣的,大力出奇迹?我掰了半天没掰开
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-29 05:12 , Processed in 0.116763 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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