• 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
返回

电子发烧友 电子发烧友

  • 全文搜索
    • 全文搜索
    • 标题搜索
  • 全部时间
    • 全部时间
    • 1小时内
    • 1天内
    • 1周内
    • 1个月内
  • 默认排序
    • 默认排序
    • 按时间排序
大家还在搜
  • 第十一期 存储与读取文件

    第十一期实现写入文件与文件的读取操作

    2018-09-16 12:23

  • 一张图读懂“云栖大会·武汉峰会”发布的阿里云AI产品体系

    ,2018云栖大会·武汉峰会上,阿里云首次曝光了人工智能产品家族,全方位公开AI产品体系(详见ai.aliyun.com),通过一张图来了解下。阿里云陆续推出了多款AI

    2018-06-12 15:46

  • 蓝桥杯第十一届省赛单片机组

    蓝桥杯第十一届省赛单片机组,翻了下以前做过的一些项目和比赛,发现了之前准备比赛的一些注意事项和心得,分享给大家希望大家能够避免错误拿高分。 适当的延时很重要,可以解决一些不正常现象ds1302读取

    2021-07-14 06:57

  • 【深圳云栖大会阿里云弹性计算ESSD云盘产品全面解析

    摘要: 2018年3月29日,在**深圳云栖**大会弹性计算技术专场上,来自阿里云弹性计算产品专家崆闻做了主题为**《百万级别IOPS云盘产品全面解析》**的技术分享,主要就

    2018-04-04 10:19

  • 北京云栖大会多媒体专场:新视界 新智能

    陌、南瓜电影等重磅嘉宾,分享他们与阿里视频云之间的故事。12月19日-20日,全球云计算TOP级峰会云栖大会的年度压轴大戏——北京峰会在国家会议中心成功举办,本次峰会内容将涵盖云计算、大数据和人工智能

    2017-12-27 17:43

  • 华秋PCB生产工艺分享 | 第十一道之成型

    如图,第十一道主流程为成型。成型的目的:顾名思义,成型就是将PCB工厂生产时的工作板按照客户的要求,做成出货给客户的成品板的形状。成型又可以分为锣板成型和模具成型,当然FPC还有激光成型,此文主要

    2023-04-07 16:49

  • 一文了解南京云栖阿里云重磅产品发布

    发挥了非常重要的作用。本文就和大家分享一下,这届南京云栖大会阿里云又有哪些新产品发布。SAP云解决方案SAP云解决方案支持企业在阿里云上部署 SAP 关键业务,依托可靠

    2018-04-28 17:18

  • Quick BI助力云上大数据分析---深圳云栖大会

    摘要: 在3月29日深圳云栖大会的数据分析与可视化专场中,阿里云产品专家陌停对大数据智能分析产品 Quick BI 进行了深入的剖析。大会现场的精彩分享也赢得观众们的一

    2018-04-03 11:42

  • 【MSP430趣谈】MSP430第十一讲之IIC总线驱动ADXL345

    ` 本帖最后由 michael_llh 于 2016-1-11 22:35 编辑 MSP430教程之十一上次和大家说了软硬件的SPI,那么这次我们要说的IIC总线的通信方式,他有什么好处呢

    2016-01-04 15:46

  • 【零基础学习STM32】第十一讲:DMA实验——存储器到存储器的传输

    本帖最后由 kkhkbb 于 2018-4-3 18:51 编辑 一、概述:1、DMA简介DMA的英文拼写是"Direct Memory Access",汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式。在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率,可以大大节省系统资源。DMA模式又可以分为Single-Word DMA(单字节DMA)和Multi-Word DMA(多字节DMA)两种。2、 DMA工作原理DMA 允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。DMA 传输主要地将一个内存区从一个装置复制到另外一个。当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。所以,DMA传输对于高效能嵌入式系统算法和网络是很重要的。3、DMA类别按键主要有两种类型:单字节DMA、多字节DMA。单字节DMA:一次传送一个字节,效率较低,但它会保证在两次DMA传送之间,CPU有机会获得总线控制权,执行一次CPU总线周期。 多字节DMA:一次请求传送一个数据块,效率高,但在整个DMA传送期间,CPU长时间无法控制总线(无法响应其他DMA请求,无法处理其他中断等)。二、实验原理:DMA(直接存储器访问)传输不需要占用CPU,可以在存储器至实现高速的数据传输。本实验采用DMA2控制器的数据流0,选用通道0进行数据传输。通过LED的颜色来判断传输是否成功。三、源代码:1.主函数及DMA设置/* * Name : main * Description: --- * Author: ysloveivy. * * History * -------------------- * Rev: 0.00 * Date : 11/21/2015 * * create. * -------------------- */int main(void){int i,k;DMA_InitTypeDefDMA_InitStructure;led.initialize();dma.initialize();//测试DMA,测试成功蓝灯闪烁,测试失败,红灯闪烁DMA_InitStructure.DMA_Channel = DMA_Channel_0;//选择通道0DMA_InitStructure.DMA_PeripheralBaseAddr = (unsigned long int)src_buffer;//DMA外设基地址DMA_InitStructure.DMA_Memory0BaseAddr = (unsigned long int)dst_buffer; //DMA存储器地址DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToMemory;//方向为存储器到存储器DMA_InitStructure.DMA_BufferSize = (unsigned long int)BUFFER_SIZE;//数据传输量DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Enable; //外设增量模式DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//存储器增量模式DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; //设置外设数据宽度DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;//设置存储器数据宽度DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;//运行模式为普通模式DMA_InitStructure.DMA_Priority = DMA_Priority_High;//优先级级别为高DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;//FIFO模式禁止DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;//FIFO阈值DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; //存储器突发单次传输DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;//外设突发单次传输DMA_Init(DMA2_Stream0, &DMA_InitStructure);DMA_Cmd(DMA2_Stream0, ENABLE); //使能DMA2_Stream0while(DMA_GetCmdStatus(DMA2_Stream0) != DISABLE);for(i = 0;i < BUFFER_SIZE;i++){ if(dst_buffer != src_buffer){//测试失败while(1){ for(k = 0;k < 10000000;k++); LED_RED_ON; for(k = 0;k < 10000000;k++); LED_RED_OFF;} }}//测试成功while(1){ for(k = 0;k < 10000000;k++); LED_BLUE_ON; for(k = 0;k < 10000000;k++); LED_BLUE_OFF;}}2.DMA初始化函数/* * Name : initialize * Description: --- * Author: ysloveivy. * * History * -------------------- * Rev: 0.00 * Date : 11/29/2015 * * create. * -------------------- */static int initialize(void){RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE);//使能DMA2时钟DMA_DeInit(DMA2_Stream0);//配置DMA2while (DMA_GetCmdStatus(DMA2_Stream0) != DISABLE)//等待DMA可配置{}return 0;}3、小知识在DMA的设置中我们遇到了关于DMA设置的结构体,我们通过配置其相关参数,以实现我们想要的功能,其解释如下:typedef struct{ uint32_t DMA_Channel; //选择通道 uint32_t DMA_PeripheralBaseAddr;//DMA外设基地址 uint32_t DMA_Memory0BaseAddr;//DMA存储器地址 uint32_t DMA_DIR;//DMA传输方向 uint32_t DMA_BufferSize;//数据传输量 uint32_t DMA_PeripheralInc;//外设增量模式选择 uint32_t DMA_MemoryInc; //存储器增量模式 uint32_t DMA_PeripheralDataSize;//设置外设数据宽度 uint32_t DMA_MemoryDataSize; //设置存储器数据宽度 uint32_t DMA_Mode; //运行模式选择 uint32_t DMA_Priority;//优先级选择 uint32_t DMA_FIFOMode;//FIFO模式选择 uint32_t DMA_FIFOThreshold;//FIFO阀值 uint32_t DMA_MemoryBurst; //存储器突发单次传输 uint32_t DMA_PeripheralBurst;//外设突发单次传输}DMA_InitTypeDef;四、实验现象:试验成功蓝色LED灯闪烁,试验反败红色LED灯闪烁。五、代码包下载连接:网盘:http://pan.baidu.com/s/1bcY5JK

    2018-04-03 15:14