完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近用CubeMX(版本到6.11.1了)调试ADC ,有4路,希望能用DMA模式,OS是FreeRTOS
HAL_ADC_ConvCpltCallback函数里面写标记位, 大致代码情况是 task里调用HAL_ADC_Start_DMA 然后判断标记位来确定DMA完成后在处理dma给出来的数据 调了半天都没法完成DMA判断。。。 代码改的乱七八糟的。。。 所以问下有没有相关的教程或者例程可以研究下。。。 |
|
相关推荐
1个回答
|
|
STM32L151多路ADC使用DMA模式的教程并不多,但是您可以参考以下步骤来实现您的需求:
1. 首先,确保您已经安装了最新版本的STM32CubeMX(您已经安装了6.11.1版本,这是很好的)。 2. 打开STM32CubeMX,选择您的STM32L151系列微控制器。 3. 在配置向导中,选择以下选项: - 选择ADC模块。 - 选择DMA作为ADC的数据传输方式。 - 选择您需要的ADC通道数量(4路)。 4. 配置DMA通道,将其与ADC模块关联。在DMA设置中,选择适当的DMA通道和请求源(通常是ADC)。 5. 配置中断和回调函数。在CubeMX中,您可以为ADC配置中断,并生成相应的HAL库回调函数。 6. 生成代码并打开生成的项目。 7. 在您的主函数中,初始化HAL库、ADC和DMA。 8. 在任务中,调用`HAL_ADC_Start_DMA()`函数,开始ADC转换并使用DMA传输数据。 9. 在`HAL_ADC_ConvCpltCallback()`回调函数中,设置一个标记位,表示DMA传输已完成。 10. 在任务中,检查标记位,如果标记位被设置,处理DMA传输的数据。 以下是一个简化的示例代码: ```c #include "stm32l1xx_hal.h" // 全局变量 uint32_t adc_values[4]; __IO uint32_t adc_dma_complete = 0; // ADC和DMA初始化代码(在main函数中调用) void SystemClock_Config(void); void MX_ADC_Init(void); void MX_DMA_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_ADC_Init(); MX_DMA_Init(); // ... while (1) { if (adc_dma_complete) { // 处理DMA传输的数据 ProcessADCData(adc_values, 4); // 重置标记位 adc_dma_complete = 0; } } } // HAL库回调函数 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) { adc_dma_complete = 1; } // 处理ADC数据的函数 void ProcessADCData(uint32_t *data, uint32_t length) { // ... } ``` 请注意,这只是一个简化的示例,您需要根据您的具体需求进行调整。希望这对您有所帮助! |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1760 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1613 浏览 1 评论
1058 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1932浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
723浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
564浏览 3评论
590浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
548浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 12:22 , Processed in 0.963463 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号