OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4285|回复: 7

一个关于SPI波特率的问题,感觉书中自相矛盾了

[复制链接]

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
发表于 2016-12-24 10:18:40 | 显示全部楼层 |阅读模式
1金钱
各位大神,最近在学习SPI时,发现一个问题,书中在介绍SPI_InitTypeDef结构体中有一句话是这样写的
“第七个参数 SPI_BaudRatePrescaler 很关键,就是设置 SPI 波特率预分频值也就是决定 SPI 的时
钟的参数,从不分频道 256 分频 8 个可选值,初始化的时候我们选择 256 分频值
SPI_BaudRatePrescaler_256, 传输速度为 36M/256=140.625KHz。”
按书上的意思那我是否可以理解为SPI最大的波特率只能是18M,
而STM32使用手册中对波特率的表述却是(波特率最大为f PCLK /2),而在使能SPI时,使用的却是APB2时钟,那最大波特率应该是36M啊?
书中还有以下一个函数
//SPI 速度设置函数
//SpeedSet:
//SPI_BaudRatePrescaler_2 2 分频 (SPI 36M@sys 72M)
//SPI_BaudRatePrescaler_8 8 分频 (SPI 9M@sys 72M)
//SPI_BaudRatePrescaler_16 16 分频 (SPI 4.5M@sys 72M)
//SPI_BaudRatePrescaler_256 256 分频 (SPI 281.25K@sys 72M
void SPI1_SetSpeed(u8 SpeedSet)
{
SPI_InitStructure.SPI_BaudRatePrescaler = SpeedSet ;
SPI_Init(SPI1, &SPI_InitStructure);
SPI_Cmd(SPI1,ENABLE);
}
按括号里的意思应该也是最大波特率为36M吧,到底哪个对呢,期待解答

最佳答案

查看完整内容[请看2#楼]

说明超频了。。。 超频不一定可以正常使用。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-12-24 10:18:41 | 显示全部楼层
说明超频了。。。
超频不一定可以正常使用。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
 楼主| 发表于 2016-12-25 14:39:41 来自手机 | 显示全部楼层
怎么没人回答了
回复

使用道具 举报

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
 楼主| 发表于 2016-12-25 15:35:44 来自手机 | 显示全部楼层
没人帮我回答很寂寞啊
回复

使用道具 举报

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
 楼主| 发表于 2016-12-25 23:06:19 来自手机 | 显示全部楼层
正点原子 发表于 2016-12-24 10:18
说明超频了。。。
超频不一定可以正常使用。

我想请教下原子哥,您说的超频了是指对于SPI来说它的fPCLK原本应该是36M的吗?但它使能的时钟信号是APB2啊,这个和fPCLK没联系吗?正常的系统时钟不应该就是72M吗?
回复

使用道具 举报

2

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2016-6-19
在线时间
195 小时
发表于 2016-12-25 23:10:19 来自手机 | 显示全部楼层
可以在2个stm32单片机上设置成这个频率进行通信,但是和ic通信时太快会出错
回复

使用道具 举报

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
 楼主| 发表于 2016-12-26 17:16:37 来自手机 | 显示全部楼层
正点原子 发表于 2016-12-24 10:18
说明超频了。。。
超频不一定可以正常使用。

好吧,谢谢原子哥我明白了,是我断章取意了,spi最大的速率可以到18M,而我们使用分频最大可以到36M这就是所谓的超频!谢谢您的解答。
回复

使用道具 举报

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
 楼主| 发表于 2016-12-26 21:48:12 | 显示全部楼层
zhu83453958 发表于 2016-12-26 17:16
好吧,谢谢原子哥我明白了,是我断章取意了,spi最大的速率可以到18M,而我们使用分频最大可以到36M这就 ...

还是要更正自己的问题一下,问题出在书上用的是SPI2,SPI2用的是APB1的系统时钟是36M,而SPI1的时钟是APB2,系统时钟频率是72M
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-29 04:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表