OpenEdv-开源电子网

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

为什么F103跟F407的SPI都不可以配置成9位数据发送?为什么F050的可以?

[复制链接]

15

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2012-5-23
在线时间
123 小时
发表于 2015-4-25 16:45:26 | 显示全部楼层 |阅读模式
5金钱
STM32F050可配置发送数据的位数↓



STM32F103可配置发送数据的位数↓



我现在需要发送9位数据,请问F103要怎么配置?
下面是我要发送的时序
时序


时序

最佳答案

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

这个要问ST工程师了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2015-4-25 16:45:27 | 显示全部楼层
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

15

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2012-5-23
在线时间
123 小时
 楼主| 发表于 2015-4-25 19:35:53 | 显示全部楼层
回复【2楼】八度空间:
---------------------------------
唉,看样子只能端口模拟了
回复

使用道具 举报

1

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2012-5-2
在线时间
4 小时
发表于 2015-7-29 17:35:19 | 显示全部楼层
我也遇到了这个问题,F429上也不能选择9位
回复

使用道具 举报

42

主题

358

帖子

0

精华

高级会员

Rank: 4

积分
890
金钱
890
注册时间
2014-8-16
在线时间
193 小时
发表于 2015-7-29 17:40:39 | 显示全部楼层
能不能告诉我那些地方用的9位spi么,我还没听说过用9位的...
回复

使用道具 举报

15

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2012-5-23
在线时间
123 小时
 楼主| 发表于 2015-7-29 20:35:45 | 显示全部楼层
回复【5楼】Theone:
---------------------------------
我是手头一块液晶屏,驱动是9位的SPI,型号忘了
回复

使用道具 举报

42

主题

358

帖子

0

精华

高级会员

Rank: 4

积分
890
金钱
890
注册时间
2014-8-16
在线时间
193 小时
发表于 2015-7-29 21:55:30 | 显示全部楼层
回复【6楼】ztzjl2010:
---------------------------------
奥 那你要是用103的话只能模拟了。谢谢科普
回复

使用道具 举报

1

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2015-8-17
在线时间
30 小时
发表于 2016-6-29 14:09:14 | 显示全部楼层
这个9位的在spi的tft上用到 ,多的一位 用于 是对数据的解释 是命令 还是数据
回复

使用道具 举报

0

主题

10

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-12-13
在线时间
2 小时
发表于 2016-8-28 12:08:41 | 显示全部楼层
我用STM32F407也遇到了这个问题。
之前的屏幕是ILI9325,直接使用第一个字节设定命令还是数据。打包好要发的字节,DMA直接发送。
结果刚买了十几块屏,厂家就说现在屏幕IC换成AT7789V了,手册拿来一看,9位SPI,使用第一位来表示命令还是数据。。。。。
本来用串口刷屏就已经够慢了,再使用IO模拟的话,估计要卡爆了
回复

使用道具 举报

14

主题

81

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2015-5-25
在线时间
39 小时
发表于 2017-12-8 11:43:18 | 显示全部楼层
ztzjl2010 发表于 2015-4-25 19:35
回复【2楼】八度空间:
---------------------------------
唉,看样子只能端口模拟了

楼主,在吗,我在做OLED  也是发送9个位, 我是用STM32cubemx设置了发送9个位,不过我不知道调用哪个函数,和数据9位是左对齐还是右对齐的16位数据,求指教!!
回复

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3448
金钱
3448
注册时间
2017-7-4
在线时间
869 小时
发表于 2017-12-8 11:52:05 | 显示全部楼层
小小小小电子 发表于 2017-12-8 11:43
楼主,在吗,我在做OLED  也是发送9个位, 我是用STM32cubemx设置了发送9个位,不过我不知道调用哪个函数 ...

一般这里非标的spi都可以用标准spi控制,不用的位可以忽略,这得看器件时序图;我用了这么多spi器件,都是用硬件spi,8bit模式驱动,多余位手动忽略;器件厂家已经考虑到这块了,除非是非常特殊的器件。
回复

使用道具 举报

14

主题

81

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2015-5-25
在线时间
39 小时
发表于 2017-12-8 15:04:10 | 显示全部楼层
Acuity 发表于 2017-12-8 11:52
一般这里非标的spi都可以用标准spi控制,不用的位可以忽略,这得看器件时序图;我用了这么多spi器件,都 ...

谢谢问题已经解决, F030的硬件spi可以发送9位的, 不知道问什么F1系统 库函数只有8 16位选择,
回复

使用道具 举报

87

主题

569

帖子

0

精华

高级会员

Rank: 4

积分
832
金钱
832
注册时间
2014-9-30
在线时间
140 小时
发表于 2017-12-8 17:17:28 | 显示全部楼层
小小小小电子 发表于 2017-12-8 15:04
谢谢问题已经解决, F030的硬件spi可以发送9位的, 不知道问什么F1系统 库函数只有8 16位选择,

  其实 芯片 硬件 都能适应 9bit 模式,

只是 有些 库函数 没做好 9bit 支持 。而已。
回复

使用道具 举报

14

主题

81

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2015-5-25
在线时间
39 小时
发表于 2017-12-8 17:34:42 | 显示全部楼层
caosix 发表于 2017-12-8 17:17
其实 芯片 硬件 都能适应 9bit 模式,

只是 有些 库函数 没做好 9bit 支持 。而已。

我看了SPI的寄存器没有配置 9位的 F0系列才有
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-7-6
在线时间
15 小时
发表于 2018-7-15 08:44:33 | 显示全部楼层
我最近要写HX8357的液晶。用SPI的方式,原来是模拟的SPI时序,我现在想用STM32F103来进行硬件SPI驱动。后来发现也是没有9BIT模式,怎么也驱动不成功。我们自己是否可以改库函数进行9BIT运行?
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-7-6
在线时间
15 小时
发表于 2018-7-15 09:45:44 | 显示全部楼层
找到了一个方法,使用USART的来模拟SPI通讯。https://www.cnblogs.com/libra13179/p/7064533.html
回复

使用道具 举报

4

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
680
金钱
680
注册时间
2019-7-28
在线时间
61 小时
发表于 2020-5-24 20:32:47 | 显示全部楼层
LCD1602和LCD12864都采用9位SPI,最高位用作指令和数据分类。
好辛苦,用F030恰好有9位SPI,但也找不到怎么组装这个字节?
回复

使用道具 举报

4

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
680
金钱
680
注册时间
2019-7-28
在线时间
61 小时
发表于 2020-5-27 08:43:32 | 显示全部楼层
小小小小电子 发表于 2017-12-8 17:34
我看了SPI的寄存器没有配置 9位的 F0系列才有

请问你用的9位SPI准备的数据是左对齐还是右对齐?
怎么组装数据,谢谢!
回复

使用道具 举报

4

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
680
金钱
680
注册时间
2019-7-28
在线时间
61 小时
发表于 2021-9-14 22:40:58 | 显示全部楼层
我看了有人用UNIX程序发送的9位SPI的方法,是将unsigned int CHR定义发送的数据或命令,右对其的
发送是采用 CHR<<8发送,紧接着发送原来的CHR&0xff,这样完成了“组装”的9位。
实际上是8位方式,分开发送,就是前面大佬说的,一般LCD考虑到了这个的"兼容"。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-1 19:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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