打印
[STM32F1]

关于STM32F103的SPI通信疑惑求解答

[复制链接]
1317|38
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
MOLAK|  楼主 | 2023-4-18 11:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    刚入门的小白,关于SPI接口在使用时碰到了问题,求大佬指点,多谢!情况说明:
  在用STM32F103R6T6做一个小车,其中用到了0.96寸的OLED屏和一个RGB_LED灯。具体情况如下:
  OLED屏使用了SPI通信,相应引脚和接口的对应关系为:CS--PC6; DC--PC7; RES--PC8; D1--PC9; D0--PC10。  
  OLED模块的接口定义为:D0--在 SPI和 IIC通信中为时钟管脚 ;D1--在 SPI和 IIC通信中为数据管脚; RES--用来复位(低电平复位);DC--数据和命令控制管脚。
  RGB_LED引脚为 PA6和 PA7,用0/1控制颜色。
  SPI1的引脚分别为:MOSI--PA7; MISO--PA6; SCK--PA5
  使用了HAL库和STM32CUBEMX。任务要求小车要一边显示测距的实时信息,一边闪烁LED。


现在的问题:
STM32F103R6T6只有一个SPI通信口,但LED的引脚被接到了SPI的MOSI和MISO,而且实物已经被做出来了,所以已经引脚没法改变。
因此在用STMCUBEMX配置时,SPI显示PA6/PA7/PB3引脚被其他占用,因此无法使用SPI。
那么OLED的D0和D1脚是必须接在芯片的SPI口上吗?普通IO口可以进行SPI通信吗?可以用SPI口来控制LED闪烁吗?SPI同时控制LED闪烁并传输信息会有问题吗?


问了GPT,它说:在控制LED的闪烁状态的同时,使用SPI通信协议与OLED进行通信。可以使用HAL库提供的函数来控制SPI引脚的输出,通HAL_SPI_TransmitReceive()函数来进行数据传输。


使用特权

评论回复
沙发
Pretext| | 2023-4-19 16:12 | 只看该作者
用模拟SPI来控制呗。

使用特权

评论回复
板凳
天天向善| | 2023-4-19 16:13 | 只看该作者
可以用普通IO来模拟SPI通信的。

使用特权

评论回复
地板
软核硬核| | 2023-4-19 16:13 | 只看该作者
找个模拟SPI驱动OLED屏幕的程序,照着改改就好了。

使用特权

评论回复
5
Henryko| | 2023-4-19 22:23 | 只看该作者
找个模拟spi的程序改一下就行了

使用特权

评论回复
6
Stahan| | 2023-4-19 23:35 | 只看该作者
找个模拟spi的例程

使用特权

评论回复
7
tian111| | 2023-4-22 13:17 | 只看该作者
GPT这个都能回答?

使用特权

评论回复
8
wangpe| | 2023-4-22 14:00 | 只看该作者
tian111 发表于 2023-4-22 13:17
GPT这个都能回答?

而且还很专业

使用特权

评论回复
9
hanwe| | 2023-4-22 14:01 | 只看该作者
用模拟SPI来控制呗。

使用特权

评论回复
10
zyf部长| | 2023-4-22 14:03 | 只看该作者
可以用普通IO来模拟SPI通信的。

使用特权

评论回复
11
dingy| | 2023-4-22 14:05 | 只看该作者
找个模拟SPI驱动OLED屏幕的程序,照着改改就好了。

使用特权

评论回复
12
liuzaiy| | 2023-4-22 14:09 | 只看该作者
找个模拟spi的程序改一下就行了

使用特权

评论回复
13
hanwe| | 2023-4-22 14:11 | 只看该作者
找个模拟spi的例程

使用特权

评论回复
14
香水城| | 2023-4-25 10:42 | 只看该作者
给你些提醒:
1、STM32F103的很多功能脚可以映射到多个地方的,你看看目前SPI功能口可否映射到别的地方,在CubeMx里鼠标点住相应管脚移动下,
若有会闪烁出来的;
2、实在不行就只能通过GPIO模拟SPI通信,原则上是没有问题的;

使用特权

评论回复
15
SantaBunny| | 2023-5-3 17:35 | 只看该作者
找个模拟spi的程序改一下

使用特权

评论回复
16
SantaBunny| | 2023-5-3 17:36 | 只看该作者
找个模拟spi的程序改一下

使用特权

评论回复
17
xxrs| | 2023-6-6 21:45 | 只看该作者
用模拟SPI来控制呗。

使用特权

评论回复
18
wuhany| | 2023-6-6 21:47 | 只看该作者

可以用普通IO来模拟SPI通信的。

使用特权

评论回复
19
jlyuan| | 2023-6-6 21:48 | 只看该作者
找个模拟SPI驱动OLED屏幕的程序,照着改改就好了。

使用特权

评论回复
20
renyaq| | 2023-6-6 21:52 | 只看该作者
找个模拟spi的程序改一下就行了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝