MOLAK 发表于 2023-4-18 11:13

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

    刚入门的小白,关于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屏幕的程序,照着改改就好了。

Henryko 发表于 2023-4-19 22:23

找个模拟spi的程序改一下就行了

Stahan 发表于 2023-4-19 23:35

找个模拟spi的例程

tian111 发表于 2023-4-22 13:17

GPT这个都能回答?

wangpe 发表于 2023-4-22 14:00

tian111 发表于 2023-4-22 13:17
GPT这个都能回答?

而且还很专业

hanwe 发表于 2023-4-22 14:01

用模拟SPI来控制呗。

zyf部长 发表于 2023-4-22 14:03

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

dingy 发表于 2023-4-22 14:05

找个模拟SPI驱动OLED屏幕的程序,照着改改就好了。

liuzaiy 发表于 2023-4-22 14:09

找个模拟spi的程序改一下就行了

hanwe 发表于 2023-4-22 14:11

找个模拟spi的例程

香水城 发表于 2023-4-25 10:42

给你些提醒:
1、STM32F103的很多功能脚可以映射到多个地方的,你看看目前SPI功能口可否映射到别的地方,在CubeMx里鼠标点住相应管脚移动下,
若有会闪烁出来的;
2、实在不行就只能通过GPIO模拟SPI通信,原则上是没有问题的;

SantaBunny 发表于 2023-5-3 17:35

找个模拟spi的程序改一下

SantaBunny 发表于 2023-5-3 17:36

找个模拟spi的程序改一下

xxrs 发表于 2023-6-6 21:45

用模拟SPI来控制呗。

wuhany 发表于 2023-6-6 21:47


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

jlyuan 发表于 2023-6-6 21:48

找个模拟SPI驱动OLED屏幕的程序,照着改改就好了。

renyaq 发表于 2023-6-6 21:52

找个模拟spi的程序改一下就行了
页: [1] 2
查看完整版本: 关于STM32F103的SPI通信疑惑求解答