登录/注册

TM4C使用ADC和DMA

更多

在 TI 的 TM4C 系列微控制器上使用 ADC 和 DMA 进行数据采集,可以通过以下步骤实现:


关键步骤说明

1. 初始化 ADC 模块

2. 配置 DMA 控制器

3. 关联 ADC 和 DMA

4. 启动采样


示例代码片段

#include <stdint.h>
#include "tm4c123gh6pm.h"
#include "inc/hw_memmap.h"
#include "driverlib/adc.h"
#include "driverlib/dma.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"

#define BUFFER_SIZE 256
uint32_t adc_buffer[BUFFER_SIZE]; // DMA 目标缓冲区

void ADC_DMA_Init(void) {
    // 1. 启用外设时钟
    SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);

    // 2. 配置 PE3 为 ADC 输入引脚
    GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_3);

    // 3. 配置 ADC0 采样序列器 SS3
    ADCSequenceConfigure(ADC0_BASE, 3, ADC_TRIGGER_PROCESSOR, 0);
    ADCSequenceStepConfigure(ADC0_BASE, 3, 0, ADC_CTL_CH0 | ADC_CTL_IE | ADC_CTL_END);
    ADCSequenceEnable(ADC0_BASE, 3);

    // 4. 配置 DMA
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UDMA);
    uDMAEnable();
    uDMAChannelAssign(UDMA_CHANNEL_0, UDMA_PRI_SELECT | UDMA_DEST_ADC0_3);
    uDMAControlSetDefault(UDMA_CH0_CTL | UDMA_SIZE_32 | UDMA_SRC_INC_NONE | UDMA_DST_INC_32 | UDMA_ARB_4);
    uDMATransferSet(UDMA_CHANNEL_0, UDMA_MODE_BASIC, adc_buffer, (void*)(ADC0_BASE + ADC_O_SSFIFO3), BUFFER_SIZE);

    // 5. 启用 ADC DMA
    ADCSequenceDMAEnable(ADC0_BASE, 3);
    uDMAChannelEnable(UDMA_CHANNEL_0);

    // 6. 触发首次采样
    ADCProcessorTrigger(ADC0_BASE, 3);
}

注意事项

建议结合数据手册(如 TM4C123GH6PM 的第 13 章 ADC 和第 10 章 DMA)和 TivaWare 库函数文档进行详细配置。

MSP430 MSP432 TM4C STM32单片机相关资料分享

MSP430 MSP432 TM4C STM32 单片机12864 数字华容道 游戏

2022-02-15 06:47:51

MSP430 MSP432 TM4C STM32 单片机相关资料推荐

MSP430 MSP432 TM4C STM32 单片机12864 黑白棋 游戏

2022-02-15 06:01:21

TI的TM4C单片机调试资料和相关开发资料分享

TI的TM4C单片机调试资料和相关开发资料,如有需求可以私聊给

2022-01-13 06:50:25

TM4C MCU上用FreeRTOS开发通用应用程序应用说明

电子发烧友网站提供《在TM4C MCU上用FreeRTOS开发通用应用程序应用说明.pdf》资料免费下载

资料下载 vinww特烦恼 2024-09-11 14:15:35

TM4C MCU上使用FreeRTOS开发高级应用

电子发烧友网站提供《在TM4C MCU上使用FreeRTOS开发高级应用.pdf》资料免费下载

资料下载 张健 2024-09-06 10:17:24

DK TM4C123G开发板手册

On-The-Go/Host/Device(OTG/主机/设备)接口,12位模拟到数字转换器(ADC)、实时时钟(RTC)和电池供电休眠模块。图1-1显示了DK-TM4C123G的照片。

资料下载 mu760905 2022-10-08 09:39:27

利用TM4C123G单片机读取并处理MPU6050初始数据

利用TM4C硬件IIC读取MPU6050角加速度及加速度数据并进行初步处理计算,粗略得出芯片当前姿态角度。

资料下载 张涛 2021-11-24 20:21:06

TM1650数码管驱动芯片和TM7711和ADC的数据手册免费下载

本文档的主要内容详细介绍的是TM1650数码管驱动芯片和TM7711和ADC的数据手册免费下载。

资料下载 佚名 2019-12-26 17:17:28

如何利用TM4C单片机和51单片机读取MQ7一氧化碳传感器返回的电压值

利用TM4C单片机和51单片机分别读取MQ7一氧化碳传感器返回的电压值,并做适当数据转换,对可燃气体浓度过高时进行报警。

2022-01-10 07:42:12

如何利用TM4C硬件IIC读取MPU6050角加速度

利用TM4C硬件IIC读取MPU6050角加速度及加速度数据并进行初步处理计算,粗略得出芯片当前姿态角度。

2021-12-07 11:53:41

基于TM4C主控的匿名拓空者飞控

准备电赛,简单写一下匿名飞控的分析基于TM4C主控的匿名拓空者飞控,介绍见匿名科创–匿名拓空者PRO—TI版全开源飞控使用入门—TM4C123文章目录一、简介二、PWM信号模式1、介绍2、硬件连接三

2021-08-06 06:57:01

电脑发送字符串后,tm4c并没用回复是为什么?

根据已有电路(ch340连接了uart2的两个口),写了一段程序,想实现每次电脑向tm4c发送字符串时,tm4c向电脑发送相应字符串程序如下,但是电脑发送字符串后,

2020-08-25 06:37:27

TM4C串口不能进入中断

使用TI的EK-TM4C1294XL开发板,板子通过PJ0,PJ1外接了一个串口调试版。修改例程 uart_echo.c如下。中断向量也配置了:#pragma DATA_SECTION

2020-04-06 08:42:06

请问TM4C将jtag口锁定后就能起到保护flash代码的作用吗?

TM4C将jtag口锁定后解锁,就会将flash全部擦除。而在bootloader中只看到编程的命令,没有读取的命令。那这样的话是否将jtag口锁定后是否就能起到保护flash代码的作用,而不需要使用MPU。因为MPU部分没做过,看文档也是看得云里雾里的。

2019-09-09 07:43:19

新出的TM4C是在lm4f的基础上修改bug还是重新设计的?

新出的TM4C是在lm4f的基础上修改bug,还是又重新设计的?如果用tm4c的pwm模拟dac精度大概能到几位?

2019-09-04 06:38:33
7天热门专题 换一换
相关标签