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

技术支持 佛山网站建设广州新塘网站seo优化

技术支持 佛山网站建设,广州新塘网站seo优化,上海广告公司招聘,天津做网站相关代码编写 配置好后点击生成代码,在生成代码的adc.c文件中的初始化函数MX_ADC1_Init中添加如下代码: HAL_ADCEx_Calibration_Start(&hadc1); /* 校准ADC */HAL_ADC_Start_DMA(&hadc1,(uint32_t*)ADC_Value,ADC_DMA_…

相关代码编写

配置好后点击生成代码,在生成代码的adc.c文件中的初始化函数MX_ADC1_Init中添加如下代码:

	HAL_ADCEx_Calibration_Start(&hadc1);                         /* 校准ADC */HAL_ADC_Start_DMA(&hadc1,(uint32_t*)ADC_Value,ADC_DMA_BUF_SIZE);

在stm32f1xx_it.c文件的DMA中断服务函数DMA1_Channel1_IRQHandler中添加如下代码 :

	if(__HAL_DMA_GET_FLAG(&hdma_adc1,DMA_FLAG_TC1))//传输完成{g_adc_dma_sta = 1;//标志位置1__HAL_DMA_CLEAR_FLAG(&hdma_adc1,DMA_FLAG_TC1);//清除传输完成标志位}

ADC的采集代码如下所示:

/* Includes ------------------------------------------------------------------*/
#include "adc_driver.h"uint16_t ADC_Value[4] = {0};
uint8_t g_adc_dma_sta = 0;/********************************************************************************************************
*    功能说明: 获取ADC的数据
*    形    参: 无
*    返 回 值: 无
**********************************************************************************************************/
void ADC_GetAdcValues(void)
{uint16_t  sum = 0;float Vol = 0;uint16_t percent = 0;//    HAL_ADC_Start_DMA(&hadc1, ADC_Value, 10); // 采样10个值存储在ADC_Value[10]数组中if (g_adc_dma_sta == 1){for(int j = 0; j < 4; j++) // 遍历4个通道,轮流取值{sum = 0;for(int i = 0; i < 1; i++){
//				printf("****************sum[x] = %d\r\n",ADC_Value[j]);sum += ADC_Value[(4 * i) + j]; // 每个通道采集l0次数据,进行10次累加}Vol = (float)sum/4096 * 2.5;percent = (float)sum/4096 * 100;//			sum = sum / 10; // 取平均值
//			printf("sum[%d] = %d\r\n",j,sum);
//			printf("Vol[%d] = %.2f\r\n",j,Vol);if(j == 0){Can_data.Txbuf[2] = percent;printf("*****大制动区= %d %%\r\n",percent);}if(j == 1){Can_data.Txbuf[0] = percent;printf("制动区= %d %%\r\n",percent);}}
//		printf("sum[x] = %d\r\n",sum);g_adc_dma_sta = 0;                              // 清除DMA采集完成标志位
//		HAL_ADC_Start_DMA(&hadc1, (uint32_t *)ADC_Value, 4); // 开启下一次ADC和DMA采集
//		HAL_ADC_Start(&hadc1);//}
}

问题总结

使能连续转换模式  hadc1.Init.ContinuousConvMode = ENABLE;,程序才会一直进 DMA中断函数DMA1_Channel1_IRQHandler

 

ADC校准可以使ADC采集值和 Vref参考值(基准电压)接近。但是f4系列不支持。

    HAL_ADCEx_Calibration_Start(&hadc1);                         /* 校准ADC */

http://www.jinmujx.cn/news/78095.html

相关文章:

  • 小说网站怎么做权重2020 惠州seo服务
  • 宿迁网页设计培训台州做优化
  • 看动漫什么网站好广告网络
  • 自学做网站的书网络营销的四种模式
  • 网页版qq中心登录入口网站seo课程
  • 网站建设后台管理怎么进入百度推广登录平台怎么收费
  • 网站制作什么语言最好可口可乐软文营销案例
  • 跨境电商建站足球排行榜前十名
  • 网络营销推广的公司网站播放视频速度优化
  • 兰州论坛网站建设东莞网站建设哪家公司好
  • 一个ip地址上可以做几个网站吗网站查询域名解析
  • 国外做美食视频网站一句话宣传自己的产品
  • 汕头seo服务seo技术优化整站
  • 网页设计基础代码谷歌seo网站运营
  • 做动态网站怎样配置iis外链是什么
  • 办公室局域网怎么搭建seo的基础优化
  • 什么值得买网站模版最新重大新闻
  • 网络营销咨询网站源码如何制作网址链接
  • 济南代办营业执照的正规公司优化设计数学
  • 小公司网站模版关键词检索
  • 平顶山做网站哪家好广告多的网站
  • wordpress导航菜单下拉优化百度seo
  • 网站建设v淘宝怎么优化关键词步骤
  • 啥也不懂怎么建设网站凤凰网全国疫情实时动态
  • 上班没事做看什么网站深圳互联网公司排行榜
  • 网站建设做微营销广告联盟怎么做
  • go pricing wordpress排名优化软件点击
  • 深圳做网站优化报价长春seo公司
  • 鹿寨建设局网站免费的网站推广方法
  • 网站建设翻译成英文seo的流程是怎么样的