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

北京营销型网站定制网站开发 建设叫什么

北京营销型网站定制,网站开发 建设叫什么,做的网站怎么让百度收索时搜,网页制作的软件是一. 对于大容量的STM32芯片有2个DMA控制器#xff0c;控制器1有7个通道#xff0c;控制器2有5个通道每个通道都可以配置一些外设的地址。二. 通道的配置过程#xff1a;1. 首先设置CPARx寄存器和CMARx寄存器。通过DMA控制器把一个地址的值复制到另外一个地址#xff0c;通过…  一. 对于大容量的STM32芯片有2个DMA控制器控制器1有7个通道控制器2有5个通道  每个通道都可以配置一些外设的地址。  二. 通道的配置过程  1. 首先设置CPARx寄存器和CMARx寄存器。  通过DMA控制器把一个地址的值复制到另外一个地址通过DMA控制器自动开启一条通道完成。  CPARx寄存器存放的是外设的地址  CMARx寄存器存储的是存储器的地址  2. 设置数据传输方向是否循环模式是不是开启外设和存储器的增量模式还有数据宽度是8位16位还是32位。  比如设置成存储器的地址增量那么传输一个数据过去后它的地址自动递增。  3. 设置要传输的数据量  4. 设置通道的优先级  5. 全部设置好后就可以启动DMA通道。  启动后数据就开始传输传输的过程中可以读CNDTRx寄存器可知道当前还剩多少个数据。数据传输到一半或全部传输完毕后有响应的标志位置1如果开启了中断可以进入相应的中断程序。  一。常用的DMA函数  1.DMA初始化函数  void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx); //设置要开启的通道还有一些参数包括外设基地址存储器基地址传输的数据量增量模式数据宽度等。  2.DMA使能函数  void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState);  3.开启相应中断的函数  void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState);  4.设置CNDTRx和读CNDTRx函数  void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber);uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx);  二。常用的外设DMA使能函数  需要开启外设的DMA使能才能够使用DMA功能。  这些函数分布在外设各自的头文件中。  三。DMA初始化函数  对应下面的代码学习  u16 DMA1_MEM_LEN; //保存DMA每次数据传送的长度//DMA1的各通道配置//这里的传输形式是固定的,这点要根据不同的情况来修改//从存储器-外设模式/8位数据宽度/存储器增量模式//DMA_CHx:DMA通道CHx//cpar:外设地址//cmar:存储器地址//cndtr:数据传输量void MYDMA_Config(DMA_Channel_TypeDef* DMA_CHx,u32 cpar,u32 cmar,u16 cndtr){RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); //使能DMA传输DMA_DeInit(DMA_CHx); //将DMA的通道1寄存器重设为缺省值DMA1_MEM_LENcndtr;DMA_InitStructure.DMA_PeripheralBaseAddr cpar; //DMA外设ADC基地址DMA_InitStructure.DMA_MemoryBaseAddr cmar; //DMA内存基地址DMA_InitStructure.DMA_DIR DMA_DIR_PeripheralDST; //数据传输方向从内存读取发送到外设DMA_InitStructure.DMA_BufferSize cndtr; //DMA通道的DMA缓存的大小DMA_InitStructure.DMA_PeripheralInc DMA_PeripheralInc_Disable; //外设地址寄存器不变DMA_InitStructure.DMA_MemoryInc DMA_MemoryInc_Enable; //内存地址寄存器递增DMA_InitStructure.DMA_PeripheralDataSize DMA_PeripheralDataSize_Byte; //数据宽度为8位DMA_InitStructure.DMA_MemoryDataSize DMA_MemoryDataSize_Byte; //数据宽度为8位DMA_InitStructure.DMA_Mode DMA_Mode_Normal; //工作在正常缓存模式DMA_InitStructure.DMA_Priority DMA_Priority_Medium; //DMA通道 x拥有中优先级DMA_InitStructure.DMA_M2M DMA_M2M_Disable; //DMA通道x没有设置为内存到内存传输DMA_Init(DMA_CHx, DMA_InitStructure); //根据DMA_InitStruct中指定的参数初始化DMA的通道USART1_Tx_DMA_Channel所标识的寄存器}  四。DMA配置的一般过程  五。实验  使用串口1发送DMA  dma.h文件  #ifndef __DMA_H#define __DMA_H#include sys.hvoid MYDMA_Config(DMA_Channel_TypeDef*DMA_CHx,u32 cpar,u32 cmar,u16 cndtr);//配置DMA1_CHxvoid MYDMA_Enable(DMA_Channel_TypeDef*DMA_CHx);//使能DMA1_CHx#endifdma.c文件#include dma.hDMA_InitTypeDef DMA_InitStructure;u16 DMA1_MEM_LEN;//保存DMA每次数据传送的长度//DMA1的各通道配置//这里的传输形式是固定的,这点要根据不同的情况来修改//从存储器-外设模式/8位数据宽度/存储器增量模式//DMA_CHx:DMA通道CHx//cpar:外设地址//cmar:存储器地址//cndtr:数据传输量void MYDMA_Config(DMA_Channel_TypeDef* DMA_CHx,u32 cpar,u32 cmar,u16 cndtr){RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); //使能DMA传输DMA在AHB总线上DMA_DeInit(DMA_CHx); //将DMA的通道1寄存器重设为缺省值DMA1_MEM_LENcndtr;DMA_InitStructure.DMA_PeripheralBaseAddr cpar; //DMA外设ADC基地址DMA_InitStructure.DMA_MemoryBaseAddr cmar; //DMA内存基地址DMA_InitStructure.DMA_DIR DMA_DIR_PeripheralDST; //数据传输方向从内存读取发送到外设DMA_InitStructure.DMA_BufferSize cndtr; //DMA通道的DMA缓存的大小DMA_InitStructure.DMA_PeripheralInc DMA_PeripheralInc_Disable; //外设地址寄存器不变DMA_InitStructure.DMA_MemoryInc DMA_MemoryInc_Enable; //内存地址寄存器递增DMA_InitStructure.DMA_PeripheralDataSize DMA_PeripheralDataSize_Byte; //数据宽度为8位DMA_InitStructure.DMA_MemoryDataSize DMA_MemoryDataSize_Byte; //数据宽度为8位DMA_InitStructure.DMA_Mode DMA_Mode_Normal; //工作在正常缓存模式DMA_InitStructure.DMA_Priority DMA_Priority_Medium; //DMA通道 x拥有中优先级DMA_InitStructure.DMA_M2M DMA_M2M_Disable; //DMA通道x没有设置为内存到内存传输DMA_Init(DMA_CHx, DMA_InitStructure); //根据DMA_InitStruct中指定的参数初始化DMA的通道 USART1_Tx_DMA_Channel所标识的寄存器}//开启一次DMA传输void MYDMA_Enable(DMA_Channel_TypeDef*DMA_CHx){DMA_Cmd(DMA_CHx, DISABLE ); //关闭USART1 TX DMA1 所指示的通道DMA_SetCurrDataCounter(DMA1_Channel4,DMA1_MEM_LEN);//DMA通道的DMA缓存的大小DMA_Cmd(DMA_CHx, ENABLE); //使能USART1 TX DMA1 所指示的通道}  注DMA每传输完成一次要传输的数据量都要自动清零因此每次开启都要重新设置要传输的数据量。  主程序中  for(i0;i{if(tj)//加入换行符{if(mask){SendBuff[i]0x0a;t0;}else{SendBuff[i]0x0d;mask;}}else//复制TEXT_TO_SEND语句{mask0;SendBuff[i]TEXT_TO_SEND[t];t;}}  这一段是 在每个字符串“ALIENTEK WarShip STM32F1 DMA 串口实验”后面添加0x0d和0x0a也就是自动换行这样在串口助手中接收到的数据就是ALIENTEK WarShip STM32F1 DMA 串口实验然后自动换行另外串口助手sscom程序有bug不能自动换行可以换其他串口助手观察。资料分享便于后期的学习参考DMA专题讲解stm32 如何用DMA搬运数据stm32串口应用PWM脉宽调制技术
http://www.pierceye.com/news/794346/

相关文章:

  • 用ps做企业网站分辨率是多少钱百度竞价是什么
  • 九江市建设局官方网站网站支付开发
  • 福建建设银行官方网站开发一个大型网站需要多少钱
  • 电子商务建立网站前期准备网站做的不好使
  • 网站建设绵阳电影发布网站模板
  • 河北商城网站搭建多少钱金融 网站 源码
  • 知乎 做网站的公司 中企动力中国十大招商平台
  • 做中英文版的网站需要注意什么怎么解决
  • 电子商务网站开发附件一个外国人做的汉子 网站
  • 找南昌网站开发公司电话寓意好的公司名字
  • 网站商城设计方案做网站的图片传进去很模糊
  • 百度站长平台电脑版cpm广告联盟平台
  • 哪些网站需要做分享按钮米卓网站建设
  • 做的网站怎样评估价值微商城网站建设平台
  • 后台网站更新 网站没显示广告投放代理商
  • 北京住房保障建设投资中心网站wordpress文章页面修改
  • 游戏网站建设项目规划书案例集约化网站群建设情况
  • 网站策划书编写阿里云部署多个网站
  • 品牌高端网站制作公司佛山新网站建设如何
  • 网站开发中怎么设置快捷键网页设计知名网站
  • 公司网上注册在哪个网站分析网络营销方式
  • 网站用什么颜色外贸企业建站公司
  • 网站下载音乐网站开发公司知乎
  • 什么样式表一般用于大型网站什么是seo搜索
  • 做网站用vue还是用jquery济宁网站建设 中企动力临沂
  • 网站专题教程最吸引人的营销广告词
  • 瑞安网站网站建设如何推广自己的店铺
  • 建设网站花都水泥公司网站建设
  • asp网站怎么下载源码农业做的好的网站
  • 导购网站怎么做视频教学网页设计与制作教程第5版