查看: 670|回复: 7
打印 上一主题 下一主题

【STM32L476 Nucleo】评测1:L476的SPI与F4的异同

[复制链接] qrcode

36

主题

41

帖子

123

积分

注册会员

Rank: 2

积分
123
楼主
跳转到指定楼层
发表于 2016-5-28 11:40 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 LiuYang 于 2016-5-28 14:13 编辑

不知道该如何去写一个评测才能将我对这款单片机的了解表达清楚。关于单片机的介绍,关于它的建工程方法,百度一下应该能搜到很多,我想就没太大意义去写。我更喜欢去分享一些技术性的东西,所以我就将我学习中遇到的一些问题和发现的与F4的一些小差异来和大家分享一下。
今天分享一下我在使用SPI的过程中遇到的问题与解决方法。

1
1L476SPI特性介绍,数据长度范围是4~16比特,宽泛的数据长度设置范围。但是在平时的应用中价值并不大,一般都是8位或者16位的,但一些数字电路里可能会有较大用处。



2
2F4的,F4仅支持8位和16位的数据长度。



3
3L476的框图,最为明显的是它具有FIFO,先进先出队列。



4
这是一个32位的缓存,有利于SPI的连续工作。提高传输速率。
再来看一下F4的:

5
F4仅有收发缓存器,也就是只有当上一数据发送完毕后再能写入下一个数据,这样就会造成发送的间断,降低数据传输速率。
两个单片机就在这两个方面有差别,但是,在使用的时候发现他们的DR寄存器操作有很大的差别,L4768位及8位以下数据长度时,对DR写入数据后spj控制器会将DR认为是两个8位寄存器。先发送低8位的内容再发高8位。

6
6是用逻辑分析仪抓取的波形图,发送数据为0x0ff0,按理只有第8位会被发送,也就是0xf0;这里显然发送了16位的数据,而且可以看出,数据是0xf00f;正如我之前所说,先发送了低80xf0,再发送了0x0f
再来看一下发生0x0000的情况:


7
依然如此。
那么,SPI工作在别的数据长度呢?
6位模式,SPI1->DR=0x0303U;



8
可见是发送了高8位和低8位数据中的低6位。
12位模式,SPI1->DR=0x0303U;

9
显而易见,这是发送了0x0303的低12位,和上图两个六位有明显差别。
那么问题来了,我就想发送8位或更少的,咋办?
这个问题之前确实也困扰了我,费了两三个小时才想明白。
前面我们说到L476具有收发FIFO,就是这里搞的鬼。当你在8位模式下,你向DR寄存器(16位)写入一个值,那么就是更新了两个字节的数据,随后两字节数据都进入发送FIFO队列,逐一被发送。终于知道原因了,那么如何只更新一个字节呢?这就容易了,有两种方式:
①:直接对地址做8位操作,代码如下


10
波形图:


11
终于是有8个位了。
②:修改头文件,用共用体实现,修改如下


12
13
抓取波形


14
发送是正确的。
我本人更倾向于第二种解决方法,用起来更方便。但是会破坏头文件,会导致你的程序的兼容性降低,代码移植起来就很不方便了。
好了,本次对SPI的评测解析就到这里了,欢迎大家和我一起讨论有关的问题,一起交流STM32的开发经验。我文中若有不对之处,也望大家能给指出,小弟不胜感激。















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

89

帖子

17

积分

新手上路

Rank: 1

积分
17
沙发
发表于 2016-5-28 11:42 AM | 只看该作者
赞一个,非常专业的测试
回复 支持 反对

使用道具 举报

0

主题

77

帖子

12

积分

新手上路

Rank: 1

积分
12
板凳
发表于 2016-5-28 02:20 PM | 只看该作者
细致。。。。。
回复 支持 反对

使用道具 举报

0

主题

91

帖子

4

积分

新手上路

Rank: 1

积分
4
地板
发表于 2016-5-28 02:29 PM | 只看该作者
写的很好
回复 支持 反对

使用道具 举报

1

主题

101

帖子

19

积分

新手上路

Rank: 1

积分
19
5#
发表于 2016-6-24 08:46 AM | 只看该作者
非常专业的测试
回复 支持 反对

使用道具 举报

1

主题

65

帖子

9

积分

新手上路

Rank: 1

积分
9
6#
发表于 2016-7-7 08:46 PM | 只看该作者
很细心。
回复 支持 反对

使用道具 举报

0

主题

72

帖子

6

积分

新手上路

Rank: 1

积分
6
7#
发表于 2016-7-15 01:56 AM | 只看该作者
兵临城下 发表于 2016-7-7 20:46
很细心。

相信
回复 支持 反对

使用道具 举报

0

主题

94

帖子

20

积分

新手上路

Rank: 1

积分
20
8#
发表于 2016-7-15 01:56 AM | 只看该作者
兵临城下 发表于 2016-7-7 20:46
很细心。

谢谢,,打错字了
回复 支持 反对

使用道具 举报

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

本版积分规则

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