你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

硬件的spi单线传输怎么读写寄存器。

[复制链接]
赵烧鸡排 提问时间:2024-10-12 15:46 / 未解决

各位哥哥姐姐们,硬件的spi单线传输怎么使用啊。

最近在用一款屏幕,是单线传输的,想要读取设备的ID或者其他寄存器,但切换spi的收发模式,就会出问题。

while(TFT_SPIx->SR & SPI_I2S_FLAG_BSY) {}; // 等待SPI空闲

LCD_DC_Clr(); // 写命令

TFT_SPIx->DR = 0x0C; // 读取寄存器

while(TFT_SPIx->SR & SPI_I2S_FLAG_BSY) {}; // 等待SPI空闲

LCD_DC_Set();

TFT_SPIx->CR1 &= ~(1<<14); //切换到接收状态 B14 -> 0 B15 - >1

GPIO_Set_Mode(TFT_SDA , GPIO_TP_IPU); //上拉输入

while(TFT_SPIx->SR & SPI_I2S_FLAG_BSY) {}; //读数据

uData = SPI_I2S_ReceiveData(TFT_SPIx);

while(TFT_SPIx->SR & SPI_I2S_FLAG_BSY) {}; TFT_SPIx->CR1 |= 1 << 14; //切换回发送状态

收藏 评论1 发布时间:2024-10-12 15:46

举报

1个回答
xmshao 回答时间:2024-10-14 09:29:05

不知你使用的哪款STM32芯片。

你现在使用单线通信,且需要切换收发方向,应该工作在半工模式。

这里有篇文章基于STM32G4系列片内2个SPI做半工模式下单线通信的示例,你可以参考下。

STM32 SPI半工单线通信示例 (qq.com)

他是使用HAL库组织的代码,寄存器操作得你自行改写。反正,参考下无所谓。

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版