MSPM0G3507应用之ADC数据通过UART接口进行传输

[复制链接]
 楼主| xyz549040622 发表于 2023-12-24 23:12 | 显示全部楼层 |阅读模式
 楼主| xyz549040622 发表于 2023-12-24 23:12 | 显示全部楼层
  1. /*
  2. * Copyright (c) 2023, Texas Instruments Incorporated
  3. * All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted provided that the following conditions
  7. * are met:
  8. *
  9. * *  Redistributions of source code must retain the above copyright
  10. *    notice, this list of conditions and the following disclaimer.
  11. *
  12. * *  Redistributions in binary form must reproduce the above copyright
  13. *    notice, this list of conditions and the following disclaimer in the
  14. *    documentation and/or other materials provided with the distribution.
  15. *
  16. * *  Neither the name of Texas Instruments Incorporated nor the names of
  17. *    its contributors may be used to endorse or promote products derived
  18. *    from this software without specific prior written permission.
  19. *
  20. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  22. * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  23. * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  24. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  25. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  26. * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
  27. * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  28. * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  29. * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  30. * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  31. */

  32. #include "ti_msp_dl_config.h"

  33. volatile bool gCheckADC;
  34. volatile uint16_t gADCResult;

  35. int main(void)
  36. {
  37.     SYSCFG_DL_init();

  38.     NVIC_EnableIRQ(ADC12_0_INST_INT_IRQN);
  39.     gCheckADC = false;

  40.     while (1) {
  41.         DL_ADC12_startConversion(ADC12_0_INST);

  42.         while (false == gCheckADC) {
  43.             __WFE();
  44.         }

  45.        /*
  46.         *  UART is 8 bits and the ADC result is 16 bits
  47.         *  Split the ADC result into 2 then send via UART.
  48.         */
  49.         gADCResult = DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_0);
  50.         uint8_t lowbyte  = (uint8_t)(gADCResult & 0xFF);
  51.         uint8_t highbyte = (uint8_t)((gADCResult >> 8) & 0xFF);
  52.         DL_UART_Main_transmitData(UART_0_INST, highbyte);
  53.         DL_UART_Main_transmitData(UART_0_INST, lowbyte);

  54.         gCheckADC = false;
  55.         DL_ADC12_enableConversions(ADC12_0_INST);
  56.     }
  57. }

  58. void ADC12_0_INST_IRQHandler(void)
  59. {
  60.     switch (DL_ADC12_getPendingInterrupt(ADC12_0_INST)) {
  61.         case DL_ADC12_IIDX_MEM0_RESULT_LOADED:
  62.             gCheckADC = true;
  63.             break;
  64.         default:
  65.             break;
  66.     }
  67. }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群: 嵌入式系统arm初学者 224636155←← +→→点击-->小 i 精品课全集,21ic公开课~~←←→→点击-->小 i 精品课全集,给你全方位的技能策划~~←←

2841

主题

19330

帖子

110

粉丝
快速回复 在线客服 返回列表 返回顶部