刚入门的小白,关于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()函数来进行数据传输。
|