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

高端网站建设大概多少费用天堂w区服选择

高端网站建设大概多少费用,天堂w区服选择,有趣的网站源码,北京seo顾问外包接线图 代码配置 ADC单次扫描DMA单次转运模式 uint16_t AD_Value[4]; //DMAAD多通道 void DMA_Config(void) {//定义结构体变量 GPIO_InitTypeDef GPIO_InitStructure;//定义GPIO结构体变量 ADC_InitTypeDef ADC_InitStructure; //定义ADC结构体变量 DMA_InitTypeDef DMA_In…

接线图

代码配置

ADC单次扫描+DMA单次转运模式

uint16_t AD_Value[4];
//DMA+AD多通道
void DMA_Config(void)
{//定义结构体变量
GPIO_InitTypeDef GPIO_InitStructure;//定义GPIO结构体变量
ADC_InitTypeDef ADC_InitStructure;  //定义ADC结构体变量
DMA_InitTypeDef DMA_InitStructure;//定义DMA结构体变量//开启RCC时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);//开启ADC1的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开启GPIO A族时钟
RCC_ADCCLKConfig(RCC_PCLK2_Div6);                   //配置分频器 选择6分频 分频之后ADCCLK = 72MHz/6 = 12MHz
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);//开启DMA1的时钟
//配置GPIO
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;//选择模拟输入
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;    //配置引脚
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速率GPIO_Init(GPIOA, &GPIO_InitStructure);   //GPIO初始化//配置多路开关ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_55Cycles5);ADC_RegularChannelConfig(ADC1,ADC_Channel_1,2,ADC_SampleTime_55Cycles5);ADC_RegularChannelConfig(ADC1,ADC_Channel_2,3,ADC_SampleTime_55Cycles5);ADC_RegularChannelConfig(ADC1,ADC_Channel_3,4,ADC_SampleTime_55Cycles5);//配置ADC转换器
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;//选择连续转换模式还是单次转换 本次单次转换
ADC_InitStructure.ADC_DataAlign =ADC_DataAlign_Right; //指定ADC数据是左对齐还是右对齐 这次选择右对齐
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;//触发控制的触发源 本次使用软件触发
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//配置独立模式还是双ADC模式 这里选独立模式
ADC_InitStructure.ADC_NbrOfChannel = 4;//在扫描模式下,总共会用到几个通道 
ADC_InitStructure.ADC_ScanConvMode = ENABLE;//选择扫描模式还是非扫描模式 本次扫描模式
ADC_Init(ADC1, &ADC_InitStructure);//配置DMA
//外设站点
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&ADC1->DR;//外设站点的基地址,这里要写一个32位的地址
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;//数据宽度 半字16位来转运
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//地址是否自增
//存储器站点
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)AD_Value;//存储器站点的及地址
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;//数据宽度
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//存储器站点地址自增
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;//传输方向 选择外设站点到存储器站点
DMA_InitStructure.DMA_BufferSize = 4;//传输次数
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;//传输计数器是否自动重装 这里选择正常模式不自动重装
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;//选择触发源,这里选择软件触发
DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;//通道优先级DMA_Init(DMA1_Channel1, &DMA_InitStructure);//使能
DMA_Cmd(DMA1_Channel1,ENABLE);//使能DMA//开启ADC到DMA的输出
ADC_DMACmd(ADC1, ENABLE);//开关控制 开启ADC
ADC_Cmd(ADC1,ENABLE);//开启ADC电源//校准
ADC_ResetCalibration(ADC1);//复位校准
while(ADC_GetResetCalibrationStatus(ADC1) == SET);//返回复位校准状态
ADC_StartCalibration(ADC1);//开始校准
while(ADC_GetCalibrationStatus(ADC1) == SET);//获取校准状态}

功能函数

void DMA_GetValue(void)
{DMA_Cmd(DMA1_Channel1,DISABLE);//失能DMADMA_SetCurrDataCounter(DMA1_Channel1, 4);//转运数据DMA_Cmd(DMA1_Channel1,ENABLE);//使能DMAADC_SoftwareStartConvCmd(ADC1, ENABLE);//软件触发//等待转运完成while(DMA_GetFlagStatus(DMA1_FLAG_TC1) == RESET);DMA_ClearFlag(DMA1_FLAG_TC1);//清除标志位}

主函数

需要在头函数将AD_Value extern引用一下才能在主函数里使用

#include "MyDMA.h"
int main(void)
{OLED_Init();DMA_Config();OLED_ShowString(1, 1, "AD0:");OLED_ShowString(2, 1, "AD1:");OLED_ShowString(3, 1, "AD2:");OLED_ShowString(4, 1, "AD3:");while(1){DMA_GetValue();OLED_ShowNum(1, 6, AD_Value[0], 4);OLED_ShowNum(2, 6, AD_Value[1], 4);OLED_ShowNum(3, 6, AD_Value[2], 4);OLED_ShowNum(4, 6, AD_Value[3], 4);}}

ADC连续扫描+DMA循环模式

在上一个函数的基础上修改几个参数,将ADC单次扫描改为连续扫描,DMA模式选择位循环模式,这种模式就不需要写功能函数了,主函数里直接可以用

将ADC触发放到最后

//DMA+AD多通道
void DMA_Config(void)
{//定义结构体变量GPIO_InitTypeDef GPIO_InitStructure;//定义GPIO结构体变量ADC_InitTypeDef ADC_InitStructure;  //定义ADC结构体变量DMA_InitTypeDef DMA_InitStructure;//定义DMA结构体变量//开启RCC时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);//开启ADC1的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开启GPIO A族时钟RCC_ADCCLKConfig(RCC_PCLK2_Div6);                   //配置分频器 选择6分频 分频之后ADCCLK = 72MHz/6 = 12MHzRCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);//开启DMA1的时钟//配置GPIOGPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;//选择模拟输入GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;    //配置引脚GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速率GPIO_Init(GPIOA, &GPIO_InitStructure);   //GPIO初始化//配置多路开关ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_55Cycles5);ADC_RegularChannelConfig(ADC1,ADC_Channel_1,2,ADC_SampleTime_55Cycles5);ADC_RegularChannelConfig(ADC1,ADC_Channel_2,3,ADC_SampleTime_55Cycles5);ADC_RegularChannelConfig(ADC1,ADC_Channel_3,4,ADC_SampleTime_55Cycles5);//配置ADC转换器ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//选择连续转换模式还是单次转换 本次连续转换ADC_InitStructure.ADC_DataAlign =ADC_DataAlign_Right; //指定ADC数据是左对齐还是右对齐 这次选择右对齐ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;//触发控制的触发源 本次使用软件触发ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//配置独立模式还是双ADC模式 这里选独立模式ADC_InitStructure.ADC_NbrOfChannel = 4;//在扫描模式下,总共会用到几个通道 ADC_InitStructure.ADC_ScanConvMode = ENABLE;//选择扫描模式还是非扫描模式 本次扫描模式ADC_Init(ADC1, &ADC_InitStructure);//配置DMA//外设站点DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&ADC1->DR;//外设站点的基地址,这里要写一个32位的地址DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;//数据宽度 半字16位来转运DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//地址是否自增//存储器站点DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)AD_Value;//存储器站点的及地址DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;//数据宽度DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//存储器站点地址自增DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;//传输方向 选择外设站点到存储器站点DMA_InitStructure.DMA_BufferSize = 4;//传输次数DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;//传输计数器是否自动重装 这里选择循环模式DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;//选择触发源,这里选择软件触发DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;//通道优先级DMA_Init(DMA1_Channel1, &DMA_InitStructure);//使能DMA_Cmd(DMA1_Channel1,ENABLE);//使能DMA//开启ADC到DMA的输出ADC_DMACmd(ADC1, ENABLE);//开关控制 开启ADCADC_Cmd(ADC1,ENABLE);//开启ADC电源//校准ADC_ResetCalibration(ADC1);//复位校准while(ADC_GetResetCalibrationStatus(ADC1) == SET);//返回复位校准状态ADC_StartCalibration(ADC1);//开始校准while(ADC_GetCalibrationStatus(ADC1) == SET);//获取校准状态ADC_SoftwareStartConvCmd(ADC1, ENABLE);//软件触发}

主函数

#include "MyDMA.h"
int main(void)
{OLED_Init();DMA_Config();OLED_ShowString(1, 1, "AD0:");OLED_ShowString(2, 1, "AD1:");OLED_ShowString(3, 1, "AD2:");OLED_ShowString(4, 1, "AD3:");while(1){OLED_ShowNum(1, 6, AD_Value[0], 4);OLED_ShowNum(2, 6, AD_Value[1], 4);OLED_ShowNum(3, 6, AD_Value[2], 4);OLED_ShowNum(4, 6, AD_Value[3], 4);}}

http://www.yayakq.cn/news/548044/

相关文章:

  • 企业网站重要吗网站建设的功能需求分析策划书
  • jsp做简单校园网站安徽安庆天气预报15天
  • 建设网站推广有友情链接的网站
  • wordpress 站点描述dede做视频网站
  • 网站管理怎么做合肥知名建站公司
  • 建电子商务网站需要多少钱无锡市新吴区住房和建设交通局网站
  • 广东住房和城乡建设厅官方网站资源网站的建设方案
  • 院系网站建设具体要求学视频剪辑大概需要多少钱
  • 永春信息网站建设招标湖南建设银行网站是多少
  • 上海企业网站seo多少钱广告设计专业培训
  • 南阳免费网站建设引流推广是什么
  • 国外最好的设计网站做商品二维码检测的网站
  • 网站开发jsp 很少怎么做游戏推广赚钱
  • 网站设计师绩效公众号怎么制作文章
  • 网站点内页还是首页wordpress视频云存储
  • 建站服务外贸网站特点
  • 做个中英文网站多少钱做俄罗斯外贸的网站
  • 樱桃企业网站管理系统大恒建设集团有限公司网站
  • 购买模板建站东莞市建设信息网官网
  • python网站开发简单吗做手机app
  • 做网站交互demo工具内蒙古呼和浩特职业学院
  • 网站盈利方法河北百度seo点击软件
  • 制作网站规划书如何用vs2012做网站
  • 龙华网站建设招商网站改版多久恢复
  • 老年门户网站建设的意义兼职做一篇微信的网站
  • 权大师的网站是哪个公司做的网站如何合理建设seo
  • 做后台系统的网站网站建设收费标准好么
  • 做网站就上凡科建站网站建设方案协议书
  • 网站建设 中关村手机微信一体网站建设
  • 上海建工网站佳简几何工业设计有限公司