初级会员

- 积分
- 151
- 金钱
- 151
- 注册时间
- 2018-7-19
- 在线时间
- 44 小时
|
主要情况是这样的,我在一个while循环中去采集DHT11温湿度,然后还会获取ADC对应的采样的数值,ADC开启了DMA中断,在DMA中断中遇到标红的两行操作Cache代码,这两行代码导致了我的DHT11读取不到数据,请问下该怎么解决
- /**
- * 函数功能: ADC转换完成回调函数
- * 输入参数: hadc:ADC外设设备句柄
- * 返 回 值: 无
- * 说 明: 读取ADC转化结果时,一定要关闭Cache,否则数组中的数据为空,即关闭Cache后读取数据,读完在打开。
- 此函数在 void HAL_ADC_IRQHandler(ADC_HandleTypeDef* hadc) 中调用
- */
- void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
- {
-
- uint32_t i;
- //DHT11_Read_Data(&temperature,&humidity);
- <font color="#ff0000"> SCB_DisableDCache();</font>
-
- DMA_Transfer_Complete_Count++;
- for(i=0;i<4;i++)
- ADC_ConvertedValue[i] = ADC_ConvertedValueRead[i];
-
-
- <font color="#ff0000"> SCB_EnableDCache();</font>
- }
复制代码
|
|