TM4C123GH6PM AD采样代码
时间: 2024-06-18 07:03:01 浏览: 117
TM4C123GH6PM是一款基于ARM Cortex-M4内核的微控制器,具有丰富的外设和高性能的计算能力,可以广泛应用于工业控制、汽车电子、医疗器械等领域。如果你想要进行AD采样,可以使用该芯片上的ADC模块。
下面是一个简单的TM4C123GH6PM ADC采样代码示例:
```c
#include "inc/tm4c123gh6pm.h"
void ADC_Init(void) {
SYSCTL_RCGCADC_R |= 0x01; //使能ADC模块0时钟
SYSCTL_RCGCGPIO_R |= 0x10; //使能PORT E时钟
while((SYSCTL_PRGPIO_R & 0x10) == 0); //等待时钟稳定
GPIO_PORTE_DIR_R &= ~0x08; //PE3输入
GPIO_PORTE_AFSEL_R |= 0x08; //PE3使用AF功能
GPIO_PORTE_DEN_R &= ~0x08; //PE3不使用数字功能
GPIO_PORTE_AMSEL_R |= 0x08; //PE3使用模拟功能
ADC0_ACTSS_R &= ~0x0008; //禁用采样序列3
ADC0_EMUX_R &= ~0xF000; //软件触发
ADC0_SSMUX3_R = (ADC0_SSMUX3_R & ~0x000F) + 1; //选择AIN1作为输入
ADC0_SSCTL3_R = 0x0006; //设置为采样模式、中断标志位清空、开启温度传感器
ADC0_ACTSS_R |= 0x0008; //启用采样序列3
}
uint32_t ADC_Read(void) {
uint32_t result;
ADC0_PSSI_R = 0x0008; //启动采样序列3
while((ADC0_RIS_R & 0x08) == 0); //等待转换完成
result = ADC0_SSFIFO3_R & 0xFFF; //获取采样结果
ADC0_ISC_R = 0x0008; //清除中断标志位
return result;
}
int main(void) {
ADC_Init();
while(1) {
uint32_t value = ADC_Read();
//处理采样结果
}
}
```
在这个示例中,我们通过ADC模块对AIN1进行采样。首先需要进行ADC模块的初始化,包括使能时钟、设置引脚、配置采样序列等。在初始化完成后,我们可以通过`ADC_Read()`函数进行一次ADC采样。该函数会启动采样序列3,并等待转换完成,最终返回采样结果。
阅读全文