当前位置: 首页 > news >正文

S32K144外设实验(三):ADC单通道连续采样(中断)

这次的实验比较简单,主要目的就是验证一下ADC的中断功能,思路是使用软件触发ADC的连续单通道采样,将采样值通过串口发送到上位机观察数是否正确。
其实官方并不推荐使用中断的方式,这种方式会占用大量的CPU资源,笔者安排这篇文章的主要目的是在使用ADC中断的时候发现了个容易忽略的问题,如下图:
ADC的配置
笔者配置了ADC通道12的连续转换并使能了通道中断,关键的点就在中断这里,通过查看SDK中的代码发现,配置后的代码并没有在SDK的初始化代码中使能NVIC中的中断开关,一定要注意在使用中断的时候配置中断优先级以及使能NVIC中的中断开关。
配置代码如下:

void AdcInit(void)
{
	//初始化ADC0模块
	ADC_DRV_ConfigConverter(INST_ADC_CONFIG_1, &adc_config_1_ConvConfig0);
	//ADC0校准
	ADC_DRV_AutoCalibration(INST_ADC_CONFIG_1);

	//设置抢占中断优先级
	INT_SYS_SetPriority(ADC0_IRQn, 12); //设置中断优先级
	INT_SYS_EnableIRQ(ADC0_IRQn);	//使能ADC0中断,如果使用中断必须使能
}

主程序代码如下:

uint16_t adcSel12Value = 0;
//ADC0中断服务程序
void ADC0_IRQHandler(void)
{
	ADC_DRV_GetChanResult(INST_ADC_CONFIG_1, 0U, &adcSel12Value);
}
int main(void)
{
	McuInit();		// 芯片基础初始化:时钟、GPIO、中断使能
	SysTickBegin();	//	SysTick定时器计时初始化
	Lpuart1Init();	//LPUART的初始化
	AdcInit();		//初始化ADC
	//软件启动ADC0
	ADC_DRV_ConfigChan(INST_ADC_CONFIG_1, 0U, &adc_config_1_ChnConfig0);
	while (1)
	{
		printf("The Sel12 Volt is %d\r\n", adcSel12Value);
		DelayMsFromSysTick(300);
	}
}


http://www.dtcms.com/a/80688.html

相关文章:

  • Android第五次面试总结(网络篇)
  • Linux上位机开发实战(camera视频读取)
  • 【DeepSeek 学C+】effective modern c+ 条款七 初始化
  • 【c++】【STL】unordered_set 底层实现(简略版)
  • k8s 配置imagePullSecrets仓库认证
  • SpringMVC全局异常处理机制
  • Android SDK下载安装配置
  • 多无人车协同探索开源包启动文件介绍(下)
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(10)
  • LVGL和其他图形库区别于联系
  • Spring Boot Actuator 自定义健康检查(附Demo)
  • AI安全、大模型安全研究(DeepSeek)
  • 3. 轴指令(omron 机器自动化控制器)——>MC_SetPosition
  • Python(数据结构概念,算法时间效率衡量,链表)
  • Oracle GoldenGate (OGG) 安装、使用及常见故障处理
  • 英伟达黄仁勋2025GTC演讲深度解析:液冷GPU、AI工厂、机器人AI…...
  • 【NoC仿真器(nirgam noxim)搭建】自用笔记
  • Debian 12系统中允许Root远程SSH登录解决方法!
  • python 数据可视化TVTK库安装与使用
  • RabbitMQ 集群搭建步驟
  • TG电报群管理机器人定制开发的重要性
  • C语言问题总结(二)
  • 数据分析的12个挑战及其解决方法
  • Event driven agentic document workflows 笔记 - 1
  • 开源软件许可证冲突的原因和解决方法
  • 【Linux】VMware Workstation Pro 17 安装教程
  • 【实战案例】用STAR+3W模型拆解电商支付系统设计文档
  • 移动端医疗AI诊断系统的设计思路与技术展望——多模态生理数据分析的理论框架探讨
  • 中小企业如何低成本构建高效专属网络?
  • 快速入手-基于Django的mysql配置(三)