OpenEdv-开源电子网

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

有人用硬件SPI初始化LCD成功地吗?

[复制链接]

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-11-22
在线时间
19 小时
发表于 2016-12-7 16:18:49 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 immydestiny 于 2016-12-7 16:20 编辑

最近我再调试用SPI初始化LCD data和cmd,我用的是stmF411的板子,之前的程序都是软件模拟SPI初始化,现在能用硬件SPI初始化吗?有可以用的程序吗?

最佳答案

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

我有SPI硬件驱动OLED的,就用了SCL和SDA两个线设置成了TX模式,发送数据和命令时只需要根据DC的状态发送十六进制就可以了,要用到的话回个信,给你源码
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

147

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2182
金钱
2182
注册时间
2014-6-30
在线时间
341 小时
发表于 2016-12-7 16:18:50 | 显示全部楼层
我有SPI硬件驱动OLED的,就用了SCL和SDA两个线设置成了TX模式,发送数据和命令时只需要根据DC的状态发送十六进制就可以了,要用到的话回个信,给你源码
在电路上充实自己
回复

使用道具 举报

31

主题

147

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2182
金钱
2182
注册时间
2014-6-30
在线时间
341 小时
发表于 2016-12-8 09:41:01 | 显示全部楼层
能到,要自己【配置一下
回复

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-11-22
在线时间
19 小时
 楼主| 发表于 2016-12-8 09:59:05 | 显示全部楼层
greatxiaoguzi 发表于 2016-12-8 09:41
能到,要自己【配置一下

接口类型为 SPI 3Line2Lane Interface,SPI为三线两通道的SPI,SPI 只能设置为8位或16位,但LCD需要传输 D/C位和8位数据,总共9位,来区别是写数据还是写命令,这样的话如何用SPI硬件接口设置9位初始化程序?你有调好的代码可以参考吗?
回复

使用道具 举报

31

主题

147

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2182
金钱
2182
注册时间
2014-6-30
在线时间
341 小时
发表于 2016-12-8 12:20:39 | 显示全部楼层
immydestiny 发表于 2016-12-8 09:59
接口类型为 SPI 3Line2Lane Interface,SPI为三线两通道的SPI,SPI 只能设置为8位或16位,但LCD需要传输  ...

写数据和写命令不冲突,根据DC端的电平来确定写数据还是命令,数据是通过SPI总线写入的,不知道哪来的9位,,,
在电路上充实自己
回复

使用道具 举报

31

主题

147

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2182
金钱
2182
注册时间
2014-6-30
在线时间
341 小时
发表于 2016-12-8 12:24:09 | 显示全部楼层
SPI要用到的话值用SCL和MOSI两个脚就可以了,其余的都配置成普通的推挽输出就可以了
在电路上充实自己
回复

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-11-22
在线时间
19 小时
 楼主| 发表于 2016-12-8 16:17:01 | 显示全部楼层
greatxiaoguzi 发表于 2016-12-8 12:20
写数据和写命令不冲突,根据DC端的电平来确定写数据还是命令,数据是通过SPI总线写入的,不知道哪来的9位 ...

加上D/Cx确定写数据还是命令,总共是9位,怎么用硬件SPI来设置,而不需要判断SCK=0还是1,来判断再写入8位?
回复

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-11-22
在线时间
19 小时
 楼主| 发表于 2016-12-8 16:17:15 | 显示全部楼层
greatxiaoguzi 发表于 2016-12-8 12:20
写数据和写命令不冲突,根据DC端的电平来确定写数据还是命令,数据是通过SPI总线写入的,不知道哪来的9位 ...

加上D/Cx确定写数据还是命令,总共是9位,怎么用硬件SPI来设置,而不需要判断SCK=0还是1,来判断再写入8位?
回复

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-11-22
在线时间
19 小时
 楼主| 发表于 2016-12-8 16:18:08 | 显示全部楼层
greatxiaoguzi 发表于 2016-12-8 12:24
SPI要用到的话值用SCL和MOSI两个脚就可以了,其余的都配置成普通的推挽输出就可以了

就是用普通GPIO吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-12-8 21:07:41 | 显示全部楼层
帮顶
回复

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-11-22
在线时间
19 小时
 楼主| 发表于 2016-12-10 12:44:36 | 显示全部楼层

原子哥,你有这个初始化程序吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-12-12 21:27:43 | 显示全部楼层
immydestiny 发表于 2016-12-10 12:44
原子哥,你有这个初始化程序吗?

没有
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-11-22
在线时间
19 小时
 楼主| 发表于 2016-12-14 14:49:41 | 显示全部楼层
greatxiaoguzi 发表于 2016-12-14 00:01
我有SPI硬件驱动OLED的,就用了SCL和SDA两个线设置成了TX模式,发送数据和命令时只需要根据DC的状态发送十 ...

好咧!THX~我以后也用OLED
回复

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-11-22
在线时间
19 小时
 楼主| 发表于 2016-12-14 15:03:21 | 显示全部楼层
greatxiaoguzi 发表于 2016-12-14 00:01
我有SPI硬件驱动OLED的,就用了SCL和SDA两个线设置成了TX模式,发送数据和命令时只需要根据DC的状态发送十 ...

发我邮箱吗?13001226285@163.com
回复

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-11-22
在线时间
19 小时
 楼主| 发表于 2017-2-10 14:47:44 | 显示全部楼层
请问一下,你给我的程序里主函数 main.C 能发给我一下吗?SPI_setSpeed()最后用到了没?
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2016-9-4
在线时间
13 小时
发表于 2017-2-12 21:07:59 | 显示全部楼层
greatxiaoguzi 发表于 2016-12-7 16:18
我有SPI硬件驱动OLED的,就用了SCL和SDA两个线设置成了TX模式,发送数据和命令时只需要根据DC的状态发送十 ...

您好,可以给大家公开一下您的代码吗,最近也在改硬件SPI,显示有点问题,想对照您的代码,找找错误
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2016-9-4
在线时间
13 小时
发表于 2017-2-12 21:14:29 | 显示全部楼层
immydestiny 发表于 2016-12-8 09:59
接口类型为 SPI 3Line2Lane Interface,SPI为三线两通道的SPI,SPI 只能设置为8位或16位,但LCD需要传输  ...

楼主,关于硬件SPI-LCD,有两种,第一种是DC(命令数据位)由SPI通信直接传输到LCD,这种情况下,是传9位,1+8,此模式下,只能用软件模拟的方式进行传输。而第二种是DC位由单独的引脚控制,不再需由SPI协议传输到LCD,这种情况下,为SPI-8位传输,可以直接设置硬件SPI
回复

使用道具 举报

1

主题

74

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2017-2-9
在线时间
19 小时
发表于 2017-2-15 14:55:11 | 显示全部楼层
帮顶、。。。。
回复

使用道具 举报

1

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-8-17
在线时间
8 小时
发表于 2017-2-15 17:15:23 | 显示全部楼层
硬件SPI好像不行
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 00:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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