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

网站备案代码如何加到网站建设维护资质

网站备案代码如何加到,网站建设维护资质,软件开发专业信息,做两个一摸一样的网站文章目录 DMAⅠ、DMA框图Ⅱ、DMA基本结构Ⅲ、不同外设的DMA请求Ⅳ、DMA函数Ⅴ、DMA_InitTypeDef结构体参数①、DMA_PeripheralBaseAddr②、DMA_PeripheralDataSize③、DMA_PeripheralInc④、DMA_MemoryBaseAddr⑤、DMA_MemoryDataSize⑥、DMA_MemoryInc⑦、DMA_DIR⑧、DMA_Buff… 文章目录 DMAⅠ、DMA框图Ⅱ、DMA基本结构Ⅲ、不同外设的DMA请求Ⅳ、DMA函数Ⅴ、DMA_InitTypeDef结构体参数①、DMA_PeripheralBaseAddr②、DMA_PeripheralDataSize③、DMA_PeripheralInc④、DMA_MemoryBaseAddr⑤、DMA_MemoryDataSize⑥、DMA_MemoryInc⑦、DMA_DIR⑧、DMA_BufferSize⑨、DMA_Mode⑩、DMA_M2M①①、DMA_Priority Ⅵ、DMA配置示例DMAAD多通道1. ADC单次扫描DMA数据转运2. ADC连续扫描DMA循环转运 DMA Ⅰ、DMA框图 Ⅱ、DMA基本结构 Ⅲ、不同外设的DMA请求 Ⅳ、DMA函数 // 重置指定的DMA通道寄存器为默认值 void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx);// 初始化指定的DMA通道根据初始化结构体配置参数 void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct);// 初始化DMA初始化结构体的默认值 void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct);// 开启或关闭指定的DMA通道 void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState);// 开启或关闭DMA通道的中断 void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState);// 设置DMA当前数据计数器的值 void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber); // 获取DMA当前数据计数器的值 uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx);// 获取DMA标志状态 FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG); // 清除DMA标志 void DMA_ClearFlag(uint32_t DMAy_FLAG);// 获取DMA中断状态 ITStatus DMA_GetITStatus(uint32_t DMAy_IT); // 清除DMA中断待处理位 void DMA_ClearITPendingBit(uint32_t DMAy_IT); Ⅴ、DMA_InitTypeDef结构体参数 ①、DMA_PeripheralBaseAddr 指定DMA通道的外设基地址外设寄存器-起始地址 类型uint32_t取值范围任意有效的外设地址作用这是DMA操作的外设端的起始地址例如ADC、USART等外设的数据寄存器地址 ②、DMA_PeripheralDataSize 指定外设寄存器的数据宽度 配置DMA传输时外设数据的大小 该参数可以是ref DMA_peripheral_data_size 宏定义解释 DMA_PeripheralDataSize_Byte 描述表示外设数据大小为1字节8位 每次DMA传输的数据大小为1字节 DMA_PeripheralDataSize_HalfWord 描述表示外设数据大小为半字16位 每次DMA传输的数据大小为2字节 DMA_PeripheralDataSize_Word 描述表示外设数据大小为1字32位 每次DMA传输的数据大小为4字节 宏函数 IS_DMA_PERIPHERAL_DATA_SIZE(SIZE) 描述检查给定的外设数据大小设置是否有效参数SIZE代表DMA的外设数据大小功能检查SIZE是否等于DMA_PeripheralDataSize_Byte、DMA_PeripheralDataSize_HalfWord或DMA_PeripheralDataSize_Word中的任一个。返回值如果SIZE有效返回1真否则返回0假 ③、DMA_PeripheralInc 指定外设地址寄存器是否递增 类型uint32_t取值范围 DMA_PeripheralInc_Disable外设地址不递增DMA_PeripheralInc_Enable外设地址递增 作用控制外设地址在每次数据传输后是否递增 ④、DMA_MemoryBaseAddr 指定DMA通道的内存基地址 存储器-起始地址 类型uint32_t取值范围任意有效的内存地址作用这是DMA操作的内存端的起始地址例如一个缓冲区的起始地址 ⑤、DMA_MemoryDataSize 指定内存数据宽度存储器-数据宽度 类型uint32_t取值范围 DMA_MemoryDataSize_Byte数据宽度为8位DMA_MemoryDataSize_HalfWord数据宽度为16位DMA_MemoryDataSize_Word数据宽度为32位 作用确定内存数据的大小 ⑥、DMA_MemoryInc 指定内存地址寄存器是否递增指定存储器-是否递增 类型uint32_t取值范围 DMA_MemoryInc_Disable内存地址不递增DMA_MemoryInc_Enable内存地址递增 作用控制内存地址在每次数据传输后是否递增 ⑦、DMA_DIR 指定数据传输方向即外设是数据源还是数据目标指定外设站点是源还是目标 类型uint32_t取值范围 DMA_DIR_PeripheralSRC外设是数据源内存是数据目标DMA_DIR_PeripheralDST外设是数据目标内存是数据源 作用确定数据传输的方向 ⑧、DMA_BufferSize 指定DMA通道的缓冲区大小以数据单元为单位 DMA_InitStruct.DMA_BufferSize Size; 传递Size个大小为数据宽度的数据 类型uint32_t取值范围0到65535作用确定要传输的数据量。数据单元的大小取决于DMA_PeripheralDataSize或DMA_MemoryDataSize的配置具体取决于传输方向 ⑨、DMA_Mode 指定DMAy通道的工作模式是否要自动重装 类型uint32_t取值范围 DMA_Mode_Normal正常模式传输完成后停止DMA_Mode_Circular循环模式自动重装传输完成后从头开始 作用确定DMA传输的模式。循环模式不适用于内存到内存的传输 ⑩、DMA_M2M 是否使用软件触发存储器到存储器 类型uint32_t描述指定DMA通道是否用于内存到内存的传输取值范围 DMA_M2M_Disable不使用内存到内存传输DMA_M2M_Enable使用内存到内存传输 作用确定DMA通道是否用于内存到内存的传输 ①①、DMA_Priority 指定DMA通道的软件优先级 按需求配置 类型uint32_t取值范围 DMA_Priority_Low低优先级DMA_Priority_Medium中优先级DMA_Priority_High高优先级DMA_Priority_VeryHigh非常高优先级 作用确定DMA通道的优先级影响多个DMA请求的处理顺序 Ⅵ、DMA配置示例 #include stm32f10x.h // Device headeruint32_t Temp_Size;//存储数据计数器的值void MyDMA_Init(uint32_t Source, uint32_t Dest, uint32_t Size)//参数需为两个数组的数组名 {Temp_Size Size;RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);DMA_InitTypeDef DMA_InitStruct;DMA_InitStruct.DMA_PeripheralBaseAddr Source;//外设寄存器-起始地址DMA_InitStruct.DMA_PeripheralDataSize DMA_PeripheralDataSize_Byte;//外设寄存器-数据宽度(此处为1byte)DMA_InitStruct.DMA_PeripheralInc DMA_PeripheralInc_Enable;//指定外设地址寄存器-是否递增DMA_InitStruct.DMA_MemoryBaseAddr Dest;//存储器-起始地址DMA_InitStruct.DMA_MemoryDataSize DMA_MemoryDataSize_Byte;//存储器-数据宽度DMA_InitStruct.DMA_MemoryInc DMA_MemoryInc_Enable;//指定存储器-是否递增DMA_InitStruct.DMA_DIR DMA_DIR_PeripheralSRC;//指定外设站点是源还是目标DMA_InitStruct.DMA_BufferSize Size;//传递Size个大小为数据宽度的数据DMA_InitStruct.DMA_Mode DMA_Mode_Normal;//指定DMAy通道的工作模式是否要自动重装DMA_InitStruct.DMA_M2M DMA_M2M_Enable;//是否使用软件触发存储器到存储器DMA_InitStruct.DMA_Priority DMA_Priority_Medium;//指定DMAy通道的软件优先级DMA_Init(DMA1_Channel1, DMA_InitStruct);DMA_Cmd(DMA1_Channel1, DISABLE);//使能或失能DMA }void MyDMA_Transfer(void)//调用函数则开始转运 {DMA_Cmd(DMA1_Channel1, DISABLE);//失能DMADMA_SetCurrDataCounter(DMA1_Channel1, Temp_Size);//设置DMA当前数据计数器的值DMA_Cmd(DMA1_Channel1, ENABLE);//使能DMAwhile(DMA_GetFlagStatus(DMA1_FLAG_TC1) RESET)//获取DMA标志状态(等待转运完成)DMA_ClearFlag(DMA1_FLAG_TC1);//清除DMA标志位 } DMAAD多通道 1. ADC单次扫描DMA数据转运 #include stm32f10x.h // Device header //模拟量转换为数字量 //AD多通道ADC扫描模式DMA数据转运uint16_t Dest_Data[4];void AD_Init(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//开启GPIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);//开启ADC时钟RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);//开启DMA时钟RCC_ADCCLKConfig(RCC_PCLK2_Div6);//配置ADC时钟(72MHz/612MHz)//配置GPIOGPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Mode GPIO_Mode_AIN;//模拟输入GPIO_InitStruct.GPIO_Pin GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIO_InitStruct);ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_41Cycles5);//配置ADC常规通道ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 2, ADC_SampleTime_41Cycles5);//配置ADC常规通道ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 3, ADC_SampleTime_41Cycles5);//配置ADC常规通道ADC_RegularChannelConfig(ADC1, ADC_Channel_3, 4, ADC_SampleTime_41Cycles5);//配置ADC常规通道//配置ADCADC_InitTypeDef ADC_InitStruct;ADC_InitStruct.ADC_Mode ADC_Mode_Independent;//将ADC配置为独立或操作双模式ADC_InitStruct.ADC_DataAlign ADC_DataAlign_Right;//数据右对齐ADC_InitStruct.ADC_ExternalTrigConv ADC_ExternalTrigConv_None;//不使用外部触发ADC_InitStruct.ADC_ContinuousConvMode DISABLE;//单次转换or连续转换ADC_InitStruct.ADC_ScanConvMode ENABLE;//非扫描模式or扫描模式ADC_InitStruct.ADC_NbrOfChannel 4;//指定要转换的ADC通道的数量ADC_Init(ADC1, ADC_InitStruct);//配置DMA DMA_InitTypeDef DMA_InitStruct;DMA_InitStruct.DMA_PeripheralBaseAddr (uint32_t)ADC1-DR;//外设寄存器-起始地址DMA_InitStruct.DMA_PeripheralDataSize DMA_PeripheralDataSize_HalfWord;//外设寄存器-数据宽度(此处为1byte)DMA_InitStruct.DMA_PeripheralInc DMA_PeripheralInc_Disable;//指定外设地址寄存器-是否递增DMA_InitStruct.DMA_MemoryBaseAddr (uint32_t)Dest_Data;//存储器-起始地址DMA_InitStruct.DMA_MemoryDataSize DMA_MemoryDataSize_HalfWord;//存储器-数据宽度DMA_InitStruct.DMA_MemoryInc DMA_MemoryInc_Enable;//指定存储器-是否递增DMA_InitStruct.DMA_DIR DMA_DIR_PeripheralSRC;//指定外设站点是源还是目标DMA_InitStruct.DMA_BufferSize 4;//传递Size个大小为数据宽度的数据DMA_InitStruct.DMA_Mode DMA_Mode_Normal;//指定DMAy通道的工作模式是否要自动重装DMA_InitStruct.DMA_M2M DMA_M2M_Disable;//是否使用软件触发存储器到存储器DMA_InitStruct.DMA_Priority DMA_Priority_Medium;//指定DMAy通道的软件优先级DMA_Init(DMA1_Channel1, DMA_InitStruct);ADC_DMACmd(ADC1, ENABLE);//开启ADC的DMA功能DMA_Cmd(DMA1_Channel1, ENABLE);//使能或失能DMAADC_Cmd(ADC1, ENABLE);//开启ADC//ADC复位校准ADC_ResetCalibration(ADC1);//重置ADC校准准备进行校准操作while(ADC_GetResetCalibrationStatus(ADC1) SET);//获取ADC重置校准状态检查是否完成ADC_StartCalibration(ADC1);//开始ADC校准while(ADC_GetCalibrationStatus(ADC1) SET);//获取ADC校准状态检查是否完成 }void AD_GetValue(void)//获取模拟值 {//选择不同的通道或取ADC值DMA_Cmd(DMA1_Channel1, DISABLE);//失能DMADMA_SetCurrDataCounter(DMA1_Channel1, 4);//设置DMA当前数据计数器的值DMA_Cmd(DMA1_Channel1, ENABLE);//使能DMAADC_SoftwareStartConvCmd(ADC1, ENABLE);//开启软件启动ADC转换用于软件触发转换--启动while(DMA_GetFlagStatus(DMA1_FLAG_TC1) RESET)//获取DMA标志状态(等待转运完成)DMA_ClearFlag(DMA1_FLAG_TC1);//清除DMA标志位}2. ADC连续扫描DMA循环转运 #include stm32f10x.h // Device header //模拟量转换为数字量 //AD多通道ADC连续扫描DMA循环转运uint16_t Dest_Data[4];void AD_Init(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//开启GPIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);//开启ADC时钟RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);//开启DMA时钟RCC_ADCCLKConfig(RCC_PCLK2_Div6);//配置ADC时钟(72MHz/612MHz)//配置GPIOGPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Mode GPIO_Mode_AIN;//模拟输入GPIO_InitStruct.GPIO_Pin GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIO_InitStruct);ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_41Cycles5);//配置ADC常规通道ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 2, ADC_SampleTime_41Cycles5);//配置ADC常规通道ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 3, ADC_SampleTime_41Cycles5);//配置ADC常规通道ADC_RegularChannelConfig(ADC1, ADC_Channel_3, 4, ADC_SampleTime_41Cycles5);//配置ADC常规通道//配置ADCADC_InitTypeDef ADC_InitStruct;ADC_InitStruct.ADC_Mode ADC_Mode_Independent;//将ADC配置为独立或操作双模式ADC_InitStruct.ADC_DataAlign ADC_DataAlign_Right;//数据右对齐ADC_InitStruct.ADC_ExternalTrigConv ADC_ExternalTrigConv_None;//不使用外部触发ADC_InitStruct.ADC_ContinuousConvMode ENABLE;//单次转换or连续转换**********************************************ADC_InitStruct.ADC_ScanConvMode ENABLE;//非扫描模式or扫描模式ADC_InitStruct.ADC_NbrOfChannel 4;//指定要转换的ADC通道的数量ADC_Init(ADC1, ADC_InitStruct);//配置DMA DMA_InitTypeDef DMA_InitStruct;DMA_InitStruct.DMA_PeripheralBaseAddr (uint32_t)ADC1-DR;//外设寄存器-起始地址DMA_InitStruct.DMA_PeripheralDataSize DMA_PeripheralDataSize_HalfWord;//外设寄存器-数据宽度(此处为1byte)DMA_InitStruct.DMA_PeripheralInc DMA_PeripheralInc_Disable;//指定外设地址寄存器-是否递增DMA_InitStruct.DMA_MemoryBaseAddr (uint32_t)Dest_Data;//存储器-起始地址DMA_InitStruct.DMA_MemoryDataSize DMA_MemoryDataSize_HalfWord;//存储器-数据宽度DMA_InitStruct.DMA_MemoryInc DMA_MemoryInc_Enable;//指定存储器-是否递增DMA_InitStruct.DMA_DIR DMA_DIR_PeripheralSRC;//指定外设站点是源还是目标DMA_InitStruct.DMA_BufferSize 4;//传递Size个大小为数据宽度的数据DMA_InitStruct.DMA_Mode DMA_Mode_Circular;//指定DMAy通道的工作模式是否要自动重装******************************DMA_InitStruct.DMA_M2M DMA_M2M_Disable;//是否使用软件触发存储器到存储器DMA_InitStruct.DMA_Priority DMA_Priority_Medium;//指定DMAy通道的软件优先级DMA_Init(DMA1_Channel1, DMA_InitStruct);ADC_DMACmd(ADC1, ENABLE);//开启ADC的DMA功能DMA_Cmd(DMA1_Channel1, ENABLE);//使能或失能DMAADC_Cmd(ADC1, ENABLE);//开启ADC//ADC复位校准ADC_ResetCalibration(ADC1);//重置ADC校准准备进行校准操作while(ADC_GetResetCalibrationStatus(ADC1) SET);//获取ADC重置校准状态检查是否完成ADC_StartCalibration(ADC1);//开始ADC校准while(ADC_GetCalibrationStatus(ADC1) SET);//获取ADC校准状态检查是否完成ADC_SoftwareStartConvCmd(ADC1, ENABLE);//开启软件启动ADC转换用于软件触发转换--启动******************************** } //*****************************************************************************************
http://www.tj-hxxt.cn/news/134620.html

相关文章:

  • 微博上如何做网站推广学校网站功能描述
  • 网站模块图甘肃网站推广
  • vue做网站好吗网和网站的区别
  • 国外超酷网站wordpress数据收集表单
  • 嘉定制作企业网站小程序模板怎么使用
  • 网站开发学习网站网站建设费摊销
  • 商城网站前置审批上传wordpress
  • 岳阳品牌网站定制开发手机网站的宽度
  • 自己做的网站怎么用qq登入贵州百度seo整站优化
  • 做网站 需要什么营业执照工业和信息化部投诉电话
  • 河北网站备案系统工地用木模板尺寸
  • 深圳那个网站建设北京室内设计公司前十名
  • 下列关于网站开发中网页上传网站建设策划书格式
  • 福州网站大全wordpress手机端编辑
  • 网站500错误 虚拟主机虚拟主机怎么建设网站
  • 网站建设需要什么技能wordpress怎么改cms
  • 黄埔区做网站城乡住房和城乡建设部网站
  • 河北涿州住房和城乡建设厅网站建设网站规模与类别
  • 给企业做网站的公司西安江苏工程造价信息网官网
  • 赵县住房和城乡建设局网站首页做网站设计需要哪些软件
  • 说明设计网站开发方案流程国外做美食视频网站
  • 无锡朝阳网站建设黄岛因特网站建设公司
  • 网站开发选择什么软件小众网站论文
  • 哪些网站是vue做的wordpress 仪表盘慢
  • 做国内贸易的网站seo搜索引擎优化实训总结
  • 给个网站做填空题上海企业登记一网通办
  • 网站开发的概要设计模板高端网站制作软件
  • 文山网站建设联系电话如何查看一个网站的访问量
  • 为什么企业要建设自己的企业文化优化网站标题名词解释
  • 承德网站开发公司网站开发的目的实习报告