OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3639|回复: 0

ADC采样开启DMA,我的DHT11函数采不到数据

[复制链接]

20

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2018-7-19
在线时间
44 小时
发表于 2020-6-30 11:30:18 | 显示全部楼层 |阅读模式
主要情况是这样的,我在一个while循环中去采集DHT11温湿度,然后还会获取ADC对应的采样的数值,ADC开启了DMA中断,在DMA中断中遇到标红的两行操作Cache代码,这两行代码导致了我的DHT11读取不到数据,请问下该怎么解决
  1. /**
  2.   * 函数功能: ADC转换完成回调函数
  3.   * 输入参数: hadc:ADC外设设备句柄
  4.   * 返 回 值: 无
  5.   * 说    明: 读取ADC转化结果时,一定要关闭Cache,否则数组中的数据为空,即关闭Cache后读取数据,读完在打开。
  6.                                                         此函数在 void HAL_ADC_IRQHandler(ADC_HandleTypeDef* hadc) 中调用
  7.   */
  8. void  HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
  9. {
  10.        
  11.         uint32_t i;
  12.         //DHT11_Read_Data(&temperature,&humidity);
  13. <font color="#ff0000">        SCB_DisableDCache();</font>
  14.        
  15.   DMA_Transfer_Complete_Count++;
  16.         for(i=0;i<4;i++)
  17.         ADC_ConvertedValue[i] = ADC_ConvertedValueRead[i];
  18.        
  19.        
  20. <font color="#ff0000">        SCB_EnableDCache();</font>
  21. }
复制代码
A代码01.png A代码02.png A代码03.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-10 01:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表