查看: 5309|回复: 0

[原创] LPC54114】学习+串口打印ADC

[复制链接]
  • TA的每日心情
    奋斗
    2017-1-18 20:00
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    17

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    533
    最后登录
    2024-11-23
    发表于 2017-4-8 17:22:09 | 显示全部楼层 |阅读模式
    本帖最后由 云淡风轻1213 于 2017-4-8 17:26 编辑

         板载仿真器和LPC54114的连接如图
    QQ截图20170408165736.png
    仿真器和LPC54114之间连着串口,更新固件之后电脑就能显示出串口来,前面有帖子提到https://www.nxpic.org.cn/module/foru ... 1%E5%AD%A6%E4%B9%A0
       但是这里注意一点,板子连着Jlink仿真器时识别不出来串口,需要把Jlink仿真器拔了。
       在万利的工程上作修改
    1. #include "fsl_device_registers.h"
    2. #include "fsl_debug_console.h"
    3. #include "board.h"

    4. #include "pin_mux.h"

    5. #include "fsl_common.h"
    6. #include "fsl_iocon.h"

    7. #include <stdbool.h>


    8. #include "app_interrupt.h"
    9. #include "app_led.h"
    10. #include "app_adc.h"
    11. #include "app_key.h"
    12. #include "app_dmic.h"
    13. #include "app_spiflash.h"
    14. #include "app_pct2075.h"
    15. #include "app_wm8904.h"
    16. #include "app_usbdmsc.h"
    17. #include "ff.h"
    18. #include "diskio.h"
    19. #include "app_spisd.h"


    20. #include "fsl_usart.h"

    21. /*******************************************************************************
    22. * Definitions
    23. ******************************************************************************/


    24. /*******************************************************************************
    25. * Prototypes
    26. ******************************************************************************/
    27. volatile float fPCTValue;
    28. static FATFS g_fileSystem; /* File system object */
    29. const TCHAR driverNumberBuffer[3U] = {SDSPIDISK + '0', ':', '/'};

    30. //uint8_t  LEDNUM[8]={0,1,2,3,4,5,6,7};
    31. /*********************************************************************************************************
    32. ** Function name:       myDelay
    33. ** Descriptions:        Èí¼þÑÓʱ
    34. ** input parameters:    ÎÞ
    35. ** output parameters:   ÎÞ
    36. ** Returned value:      ÎÞ
    37. *********************************************************************************************************/
    38. void myDelay(uint32_t ulTime)
    39. {
    40.     uint32_t i;

    41.     i = 0;
    42.     while (ulTime--) {
    43.         for (i = 0; i < 5000; i++);
    44.     }
    45. }

    46. /*******************************************************************************
    47. * Code
    48. ******************************************************************************/
    49. /*!
    50. * @brief Main function
    51. */
    52. int main(void)
    53. {
    54.         char ch;
    55.         uint16_t wADCValue = 0;

    56.         uint8_t ret;
    57.         
    58.         /* Init board hardware. */
    59.         /* attach 12 MHz clock to FLEXCOMM0 (debug console) */
    60.         CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);

    61.         BOARD_InitPins();
    62.         BOARD_BootClockRUN();
    63.         BOARD_InitDebugConsole();
    64.         
    65.         SystemCoreClockUpdate();
    66.         
    67.         SysTick_Config(SystemCoreClock/1000);
    68.         
    69.         PRINTF("\r\n-------------------------------\r\n\r\n");
    70.         PRINTF("hello world.\r\n");
    71.         PRINTF("LPC54110 Sys Clock is %dMhz.\r\n", SystemCoreClock/1000000);
    72.         PRINTF("\r\n-------------------------------\r\n");
    73.         
    74.         CLOCK_EnableClock(kCLOCK_InputMux);
    75.         CLOCK_EnableClock(kCLOCK_Iocon);
    76.         CLOCK_EnableClock(kCLOCK_Gpio0);
    77.         CLOCK_EnableClock(kCLOCK_Gpio1);
    78.         
    79.         
    80.         led_init();
    81.         key_init();
    82.         adc_init();
    83.         dmic_init();
    84.         ret = spiflash_init();
    85.         if(ret == 1)
    86.         {
    87.                 led_on(5);
    88.         }
    89.         else
    90.         {
    91.                 led_off(5);
    92.         }
    93.         
    94.         pct2075_i2c_init();
    95.         wm8904_i2s_init();
    96.         usbdmsc_init();
    97.         
    98.         if (f_mount(&g_fileSystem, driverNumberBuffer, 1))
    99.         {
    100.                         PRINTF("Mount volume failed.\r\n");
    101.         }
    102.                
    103. #if (_FS_RPATH >= 2)
    104.         if (f_chdrive((char const *)&driverNumberBuffer[0]))
    105.         {
    106.                 PRINTF("Change drive failed.\r\n");
    107.                 return;
    108.         }
    109. #endif        
    110.         FIL fd;
    111.         if(f_open(&fd, "4:/readme.txt", FA_READ) )
    112.         {
    113.                 PRINTF("f_open failed.\r\n");
    114.                 led_off(6);
    115.         }
    116.         else
    117.         {
    118.                 led_on(6);
    119.         }

    120.         
    121.         while (1)
    122.         {

    123. // ADC test schedule
    124.                 wADCValue = adc_read(ADC_CHANNEL_NUM);
    125.                 wADCValue=wADCValue*3300/4096;
    126.                 PRINTF("ADC Value is +%d.%d mV.\r\n", (int)(wADCValue*100)/100, (int)(wADCValue*100)%100);

    127.                
    128.                

    129.         }
    130. }
    复制代码
        LPC54114的ADC是12位的,基准电压是3.3V,所以计算实际测量电压公式为电压值=测量值*3300/4096;
    通过串口将电压值打印出来。

    截图20170408090406.png
    截图20170408092958.png
    截图20170408092923.png
      旋转RV1电阻器,电压在不停的变化,电压范围0mv~3300mv,不过测量精度有几个mv的跳动。
    QQ截图20170408171626.png
    USART打印ADC.rar (5.36 MB, 下载次数: 98)
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-24 00:50 , Processed in 0.080193 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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