STM32 总线】的更多相关文章

AHB,是Advanced High performance Bus的缩写,译作高级高性能总线,这是一种“系统总线”.AHB主要用于高性能模块(如CPU.DMA和DSP等)之间的连接.AHB 系统由主模块.从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应. APB,是Advanced Peripheral Bus的缩写,这是一种外围总线.APB主要用于低带宽的周边外设之间的连接,例如UART.1284等,它的总线架构不像 AHB支…
1. SPI总线简介 SPI全称串行外设接口,是一种高速,全双工,同步的外设总线:它工作在主从方式,常规需要至少4根线才能够正常工作.SPI作为基本的外设接口,在FLASH,EPPROM和一些数字通讯中,具有广泛的应用.SPI总线由四个接口构成: CS  :片选端,由主设备控制 MISO:主设备输入,从设备输出 MOSI:主设备输出,从设备输入 SCK :时钟信号 其中SCK仅能由主设备提供,且接收和发送和同时产生的,因此在主设备接收数据时也要先发送数据从而为从设备提供时钟:根据SPI时钟信号配…
问题描述 通过STM32的FSMC总线驱动ili9341,程序调试和刚下载的时候,显示完全正常.可是就在我掉电关机,重新启动的时候就完全跑飞了.这令我非常疑惑.以下是我的FSMC总线配置程序, static void LCD_FSMC_Config(void) { FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef p; p.FSMC_AddressSetupTime = 0x02; p…
调试FSMC总线复用模式时主要遇到以下几点: 1.寄存器的配置,首先注意使能地址数据复用,其次要存储器类型选择FSMC_MemoryType_NOR,否则出现不了NADV信号. FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Enable;     FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR; 2.注意个GPIO复用功能的使能…
1.CAN总线的初始化 void can_init(void){      CAN_InitTypeDef        CAN_InitStructure;      CAN_FilterInitTypeDef  CAN_FilterInitStructure;       /* CAN register init */      CAN_DeInit();      CAN_StructInit(&CAN_InitStructure);          /* CAN cell init *…
原文:http://group.chinaaet.com/116/48112 由于CPU与FPGA通信的需要,以及对8080总线的熟悉,首选采用了STM32的FSMC总线,作为片间通信接口.FSMC能达到16MHz的写入速度,理论上能写20fps的1024*768的图片哈哈.(当然实际上是不可能的,就算是DMA传输,数据源也跟不上,实际上刷模拟的图片每秒10fps,刷的很high)当然这不是本篇的要点,这里主要研究STM32的FSMC接口,将速度提升到极限. 1. FSMC协议分析 如下为ILI…
STM32 CAN总线标识符过滤器难点解析 原创 2016年05月31日 15:12:24 标签: stm32 / CAN 4910 CAN总线是目前应用非常多的一种总线,在汽车电子,航空航天中应用广泛,博主用的是战舰的STM32开发板.CAN的介绍和功能特点就不讲了,书本上网上都有,请大家在阅读本文前了解CAN总线协议的特点和功能.今天博主将和大家共同学习CAN总线标识符过滤器的使用(非常重要!)      请认真读这段话(来自STM32中文参考手册):在CAN协议里,报文的标识符不代表节点的…
本人用的单片机是STM32F407,其它型号的单片机类似,可做参考! 一.标准CAN协议位时序概念 由于CAN属于异步通讯,没有时钟信号线,连接在同一个总线网络中的各个节点会像串口异步通讯那样,节点间使用约定好的波特率进行通讯.同时,CAN还使用“位同步”的方式来抗干扰.吸收误差,实现对总线电平信号进行正确的采样,确保通讯正常.为了实现这个位同步,CAN协议将每个位的时序分解为四段:SS段.PTS段.PSB1段.PBS2段.同时定义最小的时间单位:Tq,四个段的长度用x个Tq表示,加起来就是一个…
stm32的can总线的配置如下:       CAN_InitStructure.CAN_TTCM=DISABLE;//禁止时间触发通信模式      CAN_InitStructure.CAN_ABOM=DISABLE;      CAN_InitStructure.CAN_AWUM=DISABLE;      CAN_InitStructure.CAN_NART=DISABLE;//CAN报文只被发送1次,不管发送的结果如何(成功.出错或仲裁丢失)       CAN_InitStruct…
其他链接 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(三)-SD卡的操作流程 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(四)-介绍库函数,获取一些SD卡的信息 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(五)-文件管理初步介绍 [STM32]…
功能概述: bxCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持CAN协议2.0A和2.0B:它的设计目标是以最小的CPU负载来高效处理大量的报文.它也支持报文发送的优先级要求(优先级可软件配置). CAN2.0B内核: bxCAN模块可以完全自动地接收和发送CAN报文,且完全支持标准标识符(11位)和扩展标识符(29位). 主要特征: 支持CAN协议2.0A和2.0B主动模式: 波特率最高可达1兆位/秒:(属于OSI11898标准) 支持时间触发通信功能:(可以通过…
can总线协议概述: CAN是Controller Area Network的缩写,由德国博世公司开发:CAN通过ISO11891以及ISO11519进行了标准化:     CAN总线的特点: 1.多主控制 在总线空闲时,所有单元都可以开始发送消息(多主控制): 最先访问总线的单元获得发送权(辨别方式:“CSMA/CA方式”): 多个单元同时开始发送时,发送高优先级ID消息的单元可获得发送权: 2.消息的发送 在can协议中,所有消息都是以固定格式发送.总线空闲时,所有与总线相连的单元都可以开始…
使用stm32f105rct6的can通信做IAP,实现固件的远程更新功能.IAP的实现包括两个程序:BootLoader和应用程序.启动过程先启动BootLoader,等待1s,若接收到烧写指令则开始更新程序,若无指令则启动应用程序.应用程序接收到更新指令后,切换到BootLoader. 实现IAP流程,需要的工作包括: 1.规划单片机存储区,设置中断向量位置,生成应用程序bin文件 2.编写BootLoader,实现应用程序切换 3.编写远程更新上位机,实现通信协议 1.规划单片机存储区,设…
STM32CAN控制器每个筛选器组由两个32位的寄存器组成. 根据所需位宽的不同,各个筛选器可配置成16位或32位模式(如下图,当FSCx=1为32位模式,FSCx=0时为16位模式).同时,筛选器的模式可配置成掩码模式和列表模式(FBMx=0为掩码模式,FBMx=1为列表模式). 掩码模式:对报文ID的每一位可选择必须相同和不管它. 列表模式:只给出接收的ID,其它的一概不接收. 下面将这四种情况分别介绍一下: 1.1个32位筛选器——掩码模式    第一个筛选器写入报文ID,第二个筛选器规定…
[原创]:http://m.oschina.net/blog/129357 我在原创的基础又从另一位博主处引用了一些内容. 时钟系统是处理器的核心,所以在学习STM32所有外设之前,认真学习时钟系统是必要的,有助于深入理解STM32.     下面是从网上找的一个STM32时钟框图,比<STM32中文参考手册>里面的是中途看起来清晰一些:         重要的时钟:   PLLCLK,SYSCLK,HCKL,PCLK1,PCLK2 之间的关系要弄清楚; 1.HSI:高速内部时钟信号 stm3…
STM32F103xE的USART异步数据传输示例 USART全称Universal Synchronous/Asynchronous Receiver/Transmitter,是一种可以进行同步/异步通信的串行设备接口. 通过查阅STM32官方手册得之,STM32f10x系列一共有五个USART传输串口.其中USART1.USART2.USART3为同步/异步串行通信接口,USART4.USART5为异步串行通信接口. STM32外设的初始化步骤基本上是: 使能外设时钟 配置外设所需要的I/O…
catalogue . Cortex-M3地址空间 . 基于标准外设库的软件开发 . 基于固件库实现串口输出(发送)程序 . 红外接收实验 . 深入分析流水灯例程 . GPIO再举例之按键实验 . 串口通信(USART) . 库函数开发通用流程小结 . DMA传输方式 . STM32 ADC . SysTick(系统滴答定时器) . STM32定时器 0. Cortex-M3地址空间 0x1: MDK中三种linker之间的区别 1. 采用Target对话框中的RAM和ROM地址 采用此方式,需…
在最近的一个项目中需要实现Modbus TCP通讯,而选用的硬件平台则是STM32F103和W5500,软件平台则选用IAR EWAR6.4来实现. 1.移植千的准备工作 为了实现Modbus TCP通讯首先需要下载W5500的驱动源码,可以到WIZnet的官网下载: http://wizwiki.net/wiki/doku.php?id=products:w5500:driver 下载下来的压缩包,解压后如下图: 需要将ethernet文件夹拷贝到我们的项目目录中: 并在IAR的项目下添加相关…
啊哈.没办法.外国人的芯片就喜欢用英文来命名,所以中文的:通用输入/输出  就用GPIO来代替..谁叫哥们都不是外国人呢.好啦.胡扯了一下,借用唐伯虎点秋香的话:小小书童,可笑可笑... 知道了GPIO的含义了吧..还是老规矩:不知道的,拉出去调戏十分钟.知道的.再赏美女十个.不介意吧. 在STM32中,根据“葵花宝典”中第STM32篇参考手册中,GPIO有以下几种模式: typedef enum { GPIO_Mode_AIN = 0x0, //模拟输入 GPIO_Mode_IN_FLOATI…
一.SPI协议简要介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议.  SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于 CPU与各种外…
在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. 其实是四个时钟源,如下图所示(灰蓝色),PLL是由锁相环电路倍频得到PLL时钟. ①.HSI是高速内部时钟,RC振荡器,频率为8MHz. ②.HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz. ③.LSI是低速内部时钟,RC振荡器,频率为40kHz. ④.LSE是低速外部时钟,接频率为32.768kHz的石英晶体. ⑤.PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2.HS…
说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装芯片配置.芯片ID.自举程序等等.当然, FLASH还可以用来装数据. FLASH分类 根据用途,STM32片内的FLASH分成两部分:主存储块.信息块. 主存储块用于存储程序,我们写的程序一般存储在这里. 信息块又分成两部分:系统存储器.选项字节. 系统存储器存储用于存放在系统存储器自举模式下的启动程序(BootLoader),当使用ISP方式加载程序时,就是由这个程序执行.这个…
DMA有什么用? 直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输.无须CPU的干预,通过DMA数据可以快速地移动.这就节省了CPU的资源来做其他操作. 有多少个DMA资源? 有两个DMA控制器,DMA1有7个通道,DMA2有5个通道. 数据从什么地方送到什么地方? 外设到SRAM(I2C/UART等获取数据并送入SRAM): SRAM的两个区域之间: 外设到外设(ADC读取数据后送到TIM1控制其产生不同的PWM占空比): SRAM到外设(SRAM中预先保存的数据送…
这段时间在做全国光电设计大赛,用到了px4的px4flow光流传感器,用软件模拟iic读取数据不定期会导致px4flow死机,查了资料和光流的源码,发现这个光流用了stm32的硬件iic,所以对软件模拟iic的时序要求可能更高一点所以在原子哥的iic程序上做了修改,代码测验后已经不会死机,做个笔记,保存一下. #include "myiic.h" #include "delay.h" //初始化IIC void IIC_Init(void) { 19 GPIO_In…
DMA部分我用到的相对简单,当然,可能这是新东西,我暂时还用不到它的复杂功能吧.下面用问答的形式表达我的思路. DMA有什么用? 直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输.无须CPU的干预,通过DMA数据可以快速地移动.这就节省了CPU的资源来做其他操作. 有多少个DMA资源? 有两个DMA控制器,DMA1有7个通道,DMA2有5个通道. 数据从什么地方送到什么地方? 外设到SRAM(I2C/UART等获取数据并送入SRAM): SRAM的两个区域之间: 外设…
转载自:http://www.cnblogs.com/microxiami/p/3752715.html 一.USART简介 通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换.USART利用分数波特率发生器提供宽范围的波特率选择. STM32 的串口资源相当丰富的,功能也相当强劲.STM32F103ZET6 最多可提供 5 路串口,有分数波特率发生器,支持同步单向通信和半双工单线通信,支持LIN(局部互连网),智能卡协议和I…
感谢原文作者:鱼竿的传说,这篇文章写得不错,转载自 http://www.cnblogs.com/chineseboy/archive/2013/03/14/2956782.html 前题: 闭门造车,两周了,经过各种的思考和求问,反复阅读了<<M3权威指南>>和<<stm32不完全手册>>的相关章节,以及开发板厂商的实验例程,对stm32这块中断终有所悟,是以记之. 至于中断的什么优先级,什么优先级分组,使能之类的原理,就不再赘述.这里主要是记载以下如何使…
转载自 http://blog.sina.com.cn/s/blog_6ebd49350100q6xw.html STM32时钟理解 一.硬件上的连接问题 如果使用内部RC振荡器而不使用外部晶振,请按照如下方法处理: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空.2)对于少于100脚的产品,有2种接法:   i)OSC_IN和OSC_OUT分别通过10K电阻接地.此方法可提高EMC性能.   ii)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0…
STM32重映射,内容和细节稍后补充,这里只说几个注意点,花了我一晚上的时间调试终于找到问题所在了... 芯片: STM32f107vct6 晶振: 25M 通过分频器与锁相环,使系统时钟为72M 背景: SPI3的重映射使用 一. 重映射函数原型: void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState) STM32f107vct6不是FPGA,重映射是固定的,无法自行指定,要查表,看看映射到了哪 比如SPI…