关于STM32f103 SPI时钟速度的问题

发布者:睿智之光最新更新时间:2019-09-12 来源: eefocus关键字:STM32f103  SPI  时钟速度 手机看文章 扫描二维码
随时随地手机看文章

STM32f103 中APB1的最高频率是36MHz,APB2的最高频率是72MHz,而PCLK1和PCLK2一般也默认配置为其最高工作频率36M和72M。如下图(STM32F10xx_参考手册(第7版) 第46页)时钟树所示:

SPI1时钟由APB2时钟分频而来,可以选择2、4、8、16、32、64、128、256这几个分频系数。而手册规定STM32的SPI时钟最快是18MHz。对于STM32F103的SPI1接口时钟,由72M的PCLK2分频得到,所以分配系数大于等于4(72M/4 = 18M)。对于STM32F103的SPI2/SPI3接口时钟,由36M的PCLK1分频得到,所以分配系数大于等于2(36M/2 = 18M)。


若在配置SPI1时,选择了APB2的二分频选项,依据理论SPI1的时钟速率将为36MHz(有网友测试过,确实可以达到36hz)。这个频率大于手册中要求的最快的18Mhz。如果为了追求高速率使用36MHz,建议一定要加强测试环节,同时不建议在工控产品等高可靠性的场合使用。

关键字:STM32f103  SPI  时钟速度 引用地址:关于STM32f103 SPI时钟速度的问题

上一篇:秉火429笔记之十七 SPI--操作FLASH
下一篇:stm32的SPI设置步骤,SPI配置参数

推荐阅读最新更新时间:2024-11-19 10:05

STM32F103超极精简的OS
具有学习和参考价值。由图可见,任务之间有序进行,并且符合延时顺序,3个任务如“同时”运行一样,我们称之为“并发运行”。这样的好处是一个单片机实现了“多个单片机同时运行”的效果。大家都知道,裸机中要想“并发运行”,只能依靠各种中断打断main函数运行,这将耗费中断资源,而在OS加持下,整个系统只占用SysTick一个外设资源,其他资源可以任意使用,这将有利于资源的高效利用和方便代码的书写安排。 任务函数 任务运行情况
[单片机]
<font color='red'>STM32F103</font>超极精简的OS
基于S3C2440的嵌入式Linux驱动——SPI子系统解读(三)
该系列文章将分为四个部分: 第一部分,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。 基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一) 第二部分,该文将对SPI的主控制器(master)驱动进行描述。 基于S3C2440的嵌入式Linux驱动——SPI子系统解读(二) 第三部分,即本篇文章,该文将对SPI设备驱动,也称protocol 驱动,进行讲解。 第四部分,通过SPI设备驱动留给用户层的API,我们将从上到下描述数据是如何通过SPI的protocol 驱动,由bitbang中转,最后由master驱动将数据传输出 去。 基于S3C
[单片机]
KEIL 5下载程序到STM32F103ZET6芯片时的相关设置
1、点击箭头所指的魔术棒打开项目设置,(也可在Project下打开该魔术棒) 2、Device选项卡下选择项目所使用的芯片,右侧是与所选芯片的相关信息(我用的是STM32F103ZET6选择STM32F103ZE即可) 3、Target选项卡下晶振与软件仿真有关,我们是下载到硬件然后调试可以不用设置,下面有ROM和RAM的起始地址和大小,指的都是实际硬件的ROM和RAM的起始地址和大小,默认即可 4、Output选项卡如下,打开Debug调试信息和阅读代码时函数跳转 5、Listing选项卡下将红框中的全部选上,目的是在最后程序链接时记录详细信息(在project.map文件中),英语不太好
[单片机]
STM32f103——ILI9341
#ifndef ILI9341_H_ #define ILI9341_H_ #include type.h //====================================TFT ILI9341===================================== #define ILI9341_SPI SPI1 #define ILI9341_MOSI_GRP GPIOA #define ILI9341_MOSI_IDX GPIO_Pin_7 #define ILI9341_MOSI_LOW() GPIO_ResetBits(ILI9341_MOSI_GRP, ILI9341_MO
[单片机]
使用STM32f103C8T6芯片IO口不够用怎么办
不用JTAG调试,改用SW调试,这样就可以省出几个IO作为普通IO使用。 可以节省出PA15,PB3,PB4作为普通IO。 方法: RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //开启AFIO复用功能 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //关闭JTAG口 注意: PA15管脚在设置成下拉输入后本身就有2.67V的电压,不能用于输入检测,做输出时都正常。 PB3和PB4做输入或输出都正常。
[单片机]
STM32F103外部晶振由8M变为12M
官方提供的库文件中,HSE(外部高速时钟)默认为8MHz,最高主频为8*9=72MHz,如果将HSE变为12MHz,不修改库文件的话,最高主频则变为12*9=108MHz,最典型的问题就是USART可以通信,但是接收到的数据与发送的不一致,并且找不到啥原因,害的我瞎折腾了一整天,下面列举需要修改的地方。 1、修改stm32f10x.h中的HSE_VALUE,原本的代码如下: #if !defined HSE_VALUE #ifdef STM32F10X_CL #define HSE_VALUE ((uint32_t)25000000) #else #define HSE_VALUE ((uint
[单片机]
基于stm32CubeMX和keil5的stm32f103学习编程
0. 准备 先用st-link连接stm32核心板与PC,用于烧录 St-link Stm32 3.3V 3.3V GND GND SWDIO DIO SWCLK DCLK 再用USB串口板连接,用于查看串口输出 USB Stm32 RX TX(A9) TX RX(A10) 安装完成驱动并连接好以后,进入设备管理器可以看到它们都已被识别。 打开putty.exe,选择串口连接,用于查看之后的串口输出。 1. 编写Cube程序,配置UART0为9600,8n1,上电后向串口输出“Hello”,在PC上通过串口软件观察结果; 安装完成并打开CubeMX软件,选择New P
[单片机]
基于stm32CubeMX和keil5的<font color='red'>stm32f103</font>学习编程
STM32F103标准库开发---定时器中断实验---通用定时器TIM3使用
一、STM32F103定时器 二、STM32F103通用定时器 1. 主要功能 通用TIMx (TIM2、TIM3、TIM4和TIM5)定时器功能包括: 位于低速的APB1总线上(注意:高级定时器是在高速的APB2总线上); 16位向上、向下、向上/向下自动装载计数器(TIMx_CNT); 16位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为1~65536之间的任意数值; 4个独立通道(TIMx_CH1~4),这些通道可以用来作为:输入捕获、输出比较、PWM生成(边缘或中间对齐模式)、单脉冲模式输出; 使用外部信号控制定时器和定时器互连的同步电路; 如下事件发生时产生中断/DMA:更新(计数
[单片机]
<font color='red'>STM32F103</font>标准库开发---定时器中断实验---通用定时器TIM3使用
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved