外设

keil仿真

喜你入骨 提交于 2020-01-26 15:45:15
先配置时钟频率,与代码中的一致 再配置debug调试文件 其中parameter 要与上图中的STMicroelectronics名字一致。Dialog.DLL不能写错 再点击调试,无误则成功。在运行过程中可以查看外设寄存器的情况 也可以查看更多资源 第一个是command windows 命令控制台,可以看到程序是否有误 第二个是disassembly 反汇编,显示对应的汇编语言 第四个是寄存器窗口 第六个是查看任意变量的窗口 第七个是查看内存的窗口 第八个是串口查看窗口 第九个是分析仪器如逻辑分析仪 第十个是每一个外设的寄存器 来源: CSDN 作者: 零点xu 链接: https://blog.csdn.net/qq_38348811/article/details/100567525

点亮板载LED

大兔子大兔子 提交于 2020-01-16 05:09:09
1.开发板说明    开发板型号:MaixPy-bit(mic)        图1-1 MaixPy-bit开发板   主要功能:机器视觉 2.板载LED操作 2.1硬件部分    板载LED原理图: 图2-1 板载LEDIO口分配  图2-2 板载LED原理图    板载LED是一个三色的复合灯(RGB),绿色连接的是IO_12、红色连接的是IO_13、蓝色连接的是IO_14。(源码中引脚对应的可能有误,解决办法是重新编译源码)   低电平点亮,所有被引出的IO口高电平时3.3V,而LCD屏幕IO引脚是1.8V(没有引出,直接是接LCD屏幕)。 2.2软件设计    在写程序前,我们需要知道, MaixPy 所使用的硬件 K210 的片上外设(比如GPIO、I2C等)对应的引脚是可以任意设置的,STM32 片上外设和引脚对应关系已经固定了, 只有部分引脚可以复用, 相比之下 K210 自由度更大。    片内指做成芯片的集成电路内部,简称片内;外设是外部设备的简称,是指集成电路芯片外部的设备。集成电路芯片与外部设备的连接一般需要专门的接口电路和总线的连接(包括控制总线路、地址总线和数据总线等)。   由于大规模集成电路的技术发展得很快,现在许多芯片在制造时已经能够将部分接口电路和总线集成到芯片内部。对于这部分电路与传统的接口电路和总线是有区别的,为了加于区别可以称之为片内外设

stm32之GPIO(二)

我只是一个虾纸丫 提交于 2020-01-12 23:23:30
  输入上拉:当IO口作为输入时,比如按键输入,而按键是与地连接,按下时为低电平,则没按下时该IO口应为高电平,上拉即是该IO口通过一个电阻与电源相连,则没按下时为高电平,按下即为低电平。 输入下拉:同理此时按键与电源相连,按下即为高电平,下拉就是该IO口通过一个电阻与地相连,没按下为低电平,按下为高电平。    推挽输出:作为普通的IO口输出高低电平   STM32的输入输出管脚有下面8种可能的配置:(4输入、2输出、2复用输出)     1、浮空输入_IN_FLOATING     2、带上拉输入_IPU     3、带下拉输入_IPD     4、模拟输入_AIN     5、开漏输出_OUT_OD     6、推挽输出_OUT_PP     7、复用功能的推挽输出_AF_PP     8、复用功能的开漏输出_AF_OD 上拉:输入高电平,然后接一个上拉电阻(起保护作用),上拉就表示该端口在默认情况下输入为高电平; 浮空:就相当于此端口在默认情况下什么都不接,呈高阻态; 开漏输出:就是不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电压电压。这种方式适合在连接的外设电压比单片机电压低的时候; 推挽输出:就是单片机引脚可以直接输出高电平电压,低电平时接地,高电平时输出单片机电源电压。这种方式可以不接上上拉电阻

DMA

耗尽温柔 提交于 2020-01-12 04:28:07
DMA有3种实现方式:内存->内存;内存->外设;外设->内存 (外设->内存的DMA属于ADC) stm32有俩个DMA控制器: DMA1:7通道 DMA2:5通道,只存在于大容量(256K-512K)和互联型产品(f105和f107系列) rbt6开发板属于中容量,标准型,只有DMA1; 由图可知,内存->外设的方式,只能使用对应的通道,不能使用其他的。 而内存->内存的方式,可以使用所有的通道。 DMA一次可以传输2^16个字节的数据 那么,如果多个通道请求到来,应该怎么办? 这时,需要DMA的仲裁器进行仲裁: 1.首先,判断DMA通道x配置寄存器(DMA_CCRx)的PL位; 2.其次,如果PL位相同,判断通道的编号,编号越小,优先级越高。(同时,DMA1的优先级大于DMA2) typedef struct { uint32_t DMA_PeripheralBaseAddr;//外设地址 uint32_t DMA_MemoryBaseAddr; //存储器地址 uint32_t DMA_DIR; //传输方向 //这三个成员共同决定了内存->外设;外设->内存这俩种传输模式 uint32_t DMA_BufferSize; //传输的数量,单位由外设和存储器数据宽度决定 uint32_t DMA_PeripheralInc; //外设地址是否递增 uint32_t DMA

【STM32H7教程】第42章 STM32H7的DMA基础知识和HAL库API

邮差的信 提交于 2020-01-10 11:24:17
完整教程下载地址: http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第42章 STM32H7的DMA基础知识和HAL库API 本章节为大家讲解DMA1(Direct memory access controller,直接存储器访问控制器)和DMA2,相比前面章节的BDMA,功能要强些,属于通用型DMA。 42.1 初学者重要提示 42.2 DMA基础知识 42.3 DMA的HAL库用法 42.4 源文件stm32h7xx_hal_dma.c 42.5 总结 42.1 初学者重要提示 DMA1和DMA2均支持8路通道。虽然是8路,但这8路不是并行工作的,而是由DMA的仲裁器决定当前处理那一路。 DMA最大传输次数65535次,每次传输单位可以是字节、半字和字。 DMA的循环模式不可用于存储器到存储器模式。 DMA1和DMA2带的FIFO是4个32bit的空间,即16字节。 使用DMA的FIFO和突发需要注意的问题较多,详情可看本章2.7小节。 STM32H7的参数手册DMA章节对存储器到存储器,外设到存储器,外设到存储器模式的传输过程进行了讲解,推荐大家看完本章节后读一下。 42.2 DMA基础知识 DMA的几个关键知识点放在开头说: 由于总线矩阵的存在,各个主控的道路四通八达,从而可以让DMA和CPU同时开工

STM32H743 RCC时钟部分

对着背影说爱祢 提交于 2020-01-10 07:45:38
摘要 通过输入时钟和输出时钟解析STM32H743的时钟树,并为最小系统程序、PLL动态调整、CPU的外设分配、外设在低功耗模式下的运行、CPU频率的动态调整提供了参考依据。 目录 1 术语 1.1 外设Peripherals 1.2 总线bus和桥bridges 1.3 锁相环PLL 1.4 核心时钟 Kernel clcock 1.5 RCC 1.6 单词/其他 2 输入时钟 2.1 内部震荡器 2.1.1 HSE 2.1.2 HSI 2.2 外部振荡器 2.3 锁相环 3 输出时钟[7.5.1] 3.1 核心时钟 Kernel clcock 3.2 系统时钟 SYS_CK 4 外设分配 4.1 外设分配与核心时钟 4.2 通常情况下的外设分配(CRun): 4.3 低功耗设计:CSleep模式下的外设分配 4.4 低功耗设计:CStop模式下的外设分配 5 本文未说明的功能 6 参考文件 1 术语 1.1 外设Peripherals 手册中的外设分片内外设和片外外设,外设的“外”是相对于CPU而言的。其中片外外设可以是通过SPI和UART连接的传感器芯片。片内外设由可分为两类,一类是如定时器和DMA那样可以仅仅在MCU内部运行,无需与片外外设交互的单元(虽然它们也能和片外外设交互),另一类指如SPI那样的芯片内部用于与外部设备连接的接口电路和总线 [4] 。按我这样的分类方式

STM32F407之DMA-笔记

放肆的年华 提交于 2020-01-05 09:02:49
学习要点记录,并不全面,祥参 参考手册RM0090 简介: DMA用于外设-内存,内存-内存之间数据的快速传输 DMA控制器由双AHB 主总线架构和独立的FIFO组成,以此来优化系统带宽 两个DMA控制器一共含有16个数据流,每个控制器含有8个数据流;每个数据流有8个通道,每个数据流有一个优先级仲裁器。 主要特征: 双AHB总线架构,一个负责内存访问,另一个负责外设访问 AHB从机编程接口只支持32位访问 每个数据流拥有4个独立的32位FIFO,直接模式和FIFO模式都可以使用 --FIFO模式下,可以通过软件设置FIFO阈值为1/4,1/2,3/4 --直接模式下,每个DMA请求立即触发一次数据传输。当处于直接模式,从内存向外设传输数据时,DMA只从内存预装载一个数据到FIFO --每个数据流可以通过软件配置为: -------常规通道,支持 外设-内存 ;内存-外设 ;内存-内存 。 -------双缓冲通道,支持内存双缓冲 --数据流之间的优先级可以通过软件设置为:非常高 ;高 ;中等 ;低 ;如果优先级相等,那么数据流编号越小,优先级越高 --只有DMA2的每个数据流支持软件触发的数据传输,而且只有传输方向为: 内存-内存 --每个数据流请求是8个通道中的一个。选择可以通过软件设置,而且允许一些外设来触发DMA请求 --传输的数据量可以通过DMA控制器管理,或者通过外设管理

Android开发者指南(29) —— USB Host and Accessory

心不动则不痛 提交于 2020-01-01 17:36:00
本文转载自: https://www.cnblogs.com/over140/archive/2011/11/03/2234258.html 作者:over140 转载请注明该声明。 前言   本章内容为Android开发者指南的 USB章节,译为"USB主从设备",版本为Android 4.0 r1,翻译来自:" 太阳火神的美丽人生 ",欢迎访问他的博客:" http://alot.sinaapp.com ",再次感谢"太阳火神的魅" !期待你一起参与翻译Android的相关资料,联系我over140@gmail.com。 声明   欢迎转载,但请保留文章原始出处:)     博客园: http://www.cnblogs.com/     Android中文翻译组: http://goo.gl/6vJQl USB Host and Accessory 译者署名:太阳火神的美丽人生 译者链接: http://alot.sinaapp.com 版本: Android 4.0 r1 原文 http://developer.android.com/guide/topics/usb/index.html USB 主从设备 Android 支持各种 USB 外围设备,通过两种模式来支持 Android USB 外设 (实现了 Android 外设协议的硬件): USB 外设模式和 USB

STM32F10XX DMA学习

耗尽温柔 提交于 2019-12-31 17:56:30
DMA(Direct Memory Access)是计算机科学中的一种内存访问技术。它允许某些电脑内部的硬件子系统(电脑外设),可以独立地直接读写系统存储器,而不需绕道 CPU。 DMA 用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。传输过程中, CPU 是闲置的,数据的高速传输不需要用到 CPU,节省了 CPU 的资源来做其他的操作。 在硬件系统中,主要由 CPU(内核)、外设、内存(SRAM)、总线等结构组成,数据经常要在存储器与外设直接转移,或是从外设 A 转移到外设 B。在不使用DMA 情况下, 内核通过 DCode 经过总线矩阵协调,使用 AHB 把外设 ADC 采集的数据读取到内核,然后内核 Dcode 再通过总线矩阵协调,把数据存放到内存 SRAM中 。而 DMA 就可以取代这样的工作, 由 DMA 控制器的 DMA 总线与总线矩阵协调,使用 AHB 把外设 ADC 的数据经由 DMA 通道存放到内存 SRAM。 使用 DMA为多通道采集、采样频率高、连续输出数据的 AD 采集提供了更高效的方法。 这里的外设一般是指外设的数据寄存器,比如 ADC、 SPI、 I2C 等外设的数据 寄存器。 仲裁器, 一个 DMA 控制器对应 8 个数据流,数据流包含要传输数据的源地址、目标地址、数据等信息。如果我们需要同时使用同一个 DMA 控制器多个外设请求时

RTT学习之BSP

二次信任 提交于 2019-12-31 04:34:15
---恢复内容开始--- 一 根据相近型号的demo BSP进行修改制作自己的BSP https://github.com/RT-Thread/rt-thread/blob/master/bsp/stm32/docs/STM32%E7%B3%BB%E5%88%97BSP%E5%88%B6%E4%BD%9C%E6%95%99%E7%A8%8B.md 项目 需要修改的内容说明 CubeMX_Config (文件夹) CubeMX 工程:芯片型号,时钟源,下载方式,使能串口外设(只需要, 为何? ),配置时钟树,生成对应工程只是为了获得board/CubeMX_Config/Src/main.c下的SystemClock_Config()拷贝到board.c中 linker_scripts (文件夹) BSP 特定的链接脚本 board.c/h 系统时钟、GPIO 初始化函数、芯片存储器大小(根据具体芯片修改 FLASH 和 RAM 的相关参数) Kconfig 芯片型号、系列、外设资源 SConscript 芯片启动文件、目标芯片型号 修改工程模板 打开mdk或IAR修改芯片。调试下载方式等 二 。通过使能偏上外设编写自己的板载外设,可以利用用板载的外设、内核资源/组件开发相应应用利用,偏上外设加板级扩展模块也相当于板上外设级别 为 BSP 添加驱动时,STM32CubeMX