搞这个,起因呢,公司产品里ZigBee模块固件版本不对,一大批产品需要二次升级。
需要升级的ZigBee模块是直接与stm32相连的,没有引出升级口,所以得搞个串口直通程序,通过232转MCU再转ZigBee,来进行升级。
一开始直接中断互通,结果呢,通倒是可以通,一升级固件就不行了,大概是因为数据量较大吧。
所以用了DMA,之前也没用过DMA,就慢慢学慢慢模仿着改呗。
这里要涉及到一个点,DMA的外设到外设,经常写的是,DMA只有外设到内存、内存到外设、内存到内存三种模式。
实际上,DMA是可以外设直接到外设的,而且用法非常非常简单,直接设置成外设到内存或内存到外设模式,然后把内存直接改成外设的地址,就可以了。
下面是我的程序,单片机是STM32F407,usart3和usart6 互通。
https://download.csdn.net/download/qq_36192233/11983754
说是互通,其实只有一路是DMA外设到外设。
一方面,只有下载一向有大量数据;一方面,usart3返回usart6,DMA外设到外设行不通。
这一点卡了我很久,一路我没多久就调好了,但返回的那一路我懵了几天。
我就搞不懂,凭啥数据进的来回不去,明明是几乎一模一样的配置。
我以为是配置问题,各种在网上找DMA配置的程序,然后对比参照着改配置,无果。
最后才发现,这一路就是通不了的。
注意图片下那一行,简单地说,所有的用DMA1的外设,都搞不通,人家DMA1外设端口压根不在总线矩阵。
所以,用外设到外设之前,必须得先考虑一下这一点,不行的话,还是老老实实配两次DMA加好中断吧。
特别是stm32F4系列,据说f1系列都是可以的
上一篇:stm32实用篇6:HAL库 DS18B20 驱动
下一篇:STM32直接存储器访问DMA
推荐阅读
史海拾趣
DEI公司最初由一群热衷于电子技术的工程师创立。在创立初期,公司面临着资金短缺和技术难度大的挑战。然而,他们凭借对技术的执着追求和对市场的敏锐洞察,成功研发出了第一款高性能的电子设备。这款产品凭借其卓越的性能和合理的价格,迅速在市场上获得了认可,为DEI公司赢得了第一桶金。
在XXXX年,Exel Microsystems Inc公司成功进入国际市场。公司凭借优质的产品和服务,赢得了国外客户的认可和信任。为了更好地服务国际市场,Exel还在多个国家和地区设立了分支机构和研发中心。这一市场拓展的成功不仅为公司带来了更多的商业机会,也提升了公司的国际知名度和影响力。
Astro Tool Corp公司初创时,面临着电子制造行业激烈的竞争环境。然而,公司创始人凭借其在精密工具制造领域的深厚技术背景,带领团队研发出了一款具有高精度和高稳定性的电子制造工具,成功吸引了业内众多客户的关注。这款产品不仅提高了生产效率,还降低了制造成本,迅速在市场上占据了一席之地。公司借此机会,不断扩大生产规模,逐步在电子制造工具市场建立起自己的地位。
自2010年起,展恒电子专注于智能仪表行业,凭借其核心技术和横向联合多家关键器件供应商的策略,为水、电、气、热四表市场提供整套解决方案。随着业务的不断拓展,公司逐渐积累了大量的行业知名客户,进一步巩固了其在智能仪表领域的领先地位。同时,公司还积极向新能源、物联网、安防家居等多个领域拓展,以实现业务的多元化发展。
随着市场竞争的加剧,FDI公司意识到只有不断创新才能在行业中立足。于是,公司加大了对研发的投入,引进了一批顶尖的技术人才。经过数年的努力,FDI成功研发出了一款具有自主知识产权的智能电子系统,该系统集成了多项先进技术,可以广泛应用于智能家居、工业自动化等领域。这一技术突破,不仅使FDI公司的知名度大幅提升,也为其带来了丰厚的利润。
作为一家有社会责任感的企业,FDI公司始终关注社会公益事业。公司积极参与扶贫、教育、环保等领域的公益活动,为社会做出了积极贡献。同时,FDI还设立了奖学金和助学金,鼓励和支持年轻人投身电子科技事业。这些举措不仅提升了公司的社会形象,也为其赢得了广泛的赞誉。
E.1 问题的提出 笔者在多年的AVR教学和开发应用实践过程中,一直使用本书中推荐(见第4章的第3节)的兼容STK200/STK300的ISP下载电缆。该下载电缆支持所有使用ISP技术的AVR芯片,同时也支持ATMEL公司51系列兼容芯片AT89S51、AT89S52、AT89S53、89S ...… 查看全部问答∨ |
许多跳槽者参加应聘面试时,都会被招聘者问及离开原来职位的原因。若是由于上班路途太远、专业不对口、随迁搬家等人人都可以理解的因素,说起来无顾忌,如果是以下四种因素,就要慎之又慎了,弄不好,就会失去了应聘机会。 1、收入低没劲干 ...… 查看全部问答∨ |
运放的失调电流与失调电压会对运放的零点影响,国庆看了几天的资料...我会整理出来,放在这里给大家看. 先来介绍下失调电流与电压 如果运放两个输入端上的电压均为0V,则输出端电压也应该等于0V。但事实上,输出端总有一些电压,该电压称为失调电压 ...… 查看全部问答∨ |
由于硬件不支持MLC的4bit ECC/EDC 所以需要软件来实现 兄弟们觉得这个可行性如何? 软件实现的话,性能要打多大的折扣? 关于MLC用到的4bit ECC/EDC 的算法,兄弟们能给个资料或者什么的吗? 贴个链接也行 感谢… 查看全部问答∨ |
evc中,我在对话框中定义了全局变量HANDLE hComm;但编译是出现如下错误 MSR.cpp MSRDlg.cpp Generating Code... Linking... MSRDlg.obj : error LNK2005: "void * hComm" (?hComm@@3PAXA) already defined in MSR.obj ARMV4IDbg/MSR.exe ...… 查看全部问答∨ |
我是大四的学生 马上就要毕业了 电子信息工程的 我现在在学习51单片机 因为我觉得很好上手 但是我不想一直都做单片机(觉得很没前途) 以后想工作了再往嵌入式方面转&nb ...… 查看全部问答∨ |
2812的存储空间分配 : 2812 的片内存储器共128K 分高64K 和底64K 分别映射到24X和240X的程序空间和数据空间 但2812还有128K 的FLASH 和2812 的片内存储器共128K这句话矛盾了 请高手 ...… 查看全部问答∨ |
|
不一定是实现高频的数字通信,就是一般的中波/短波/调频接收机, 我说的绝对意义就是:天线->A/D->DSP->功放 或许现在的软件无线电实现中波接收机瓶颈并不在DSP,而是在A/D的转换速度… 查看全部问答∨ |
各位专家好,我在用dm365做项目,内核是linux-2.6.18的,需要用到bonding驱动,做有线和wifi双网卡绑定,bonding和ifenslave都是内核自带的,当我用ifenslave绑定eth0时报错如下: # ifconfig bond0 192.168.1.128 up# ifenslave bond0 eth0 emac ...… 查看全部问答∨ |