打印
[屏驱相关]

SWM181如何通过硬件I2C驱动ssd1306屏幕

[复制链接]
372|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
perseverance51|  楼主 | 2023-3-3 14:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SWM181如何通过硬件I2C驱动ssd1306屏幕,在官方的例程包,驱动I2C例程的只有一个驱动24C02的例程。

使用特权

评论回复

相关帖子

沙发
华芯微特FAE| | 2023-3-3 15:13 | 只看该作者
屏厂会给代码,自行移植即可

使用特权

评论回复
评论
perseverance51 2023-3-3 17:17 回复TA
你这是刷锅,屏幕厂家不会提供硬件方式I2c驱动程序的,一般只会给软件I2C驱动程序代码。 
板凳
perseverance51|  楼主 | 2023-3-3 17:19 | 只看该作者
软件方式就不用了,软件方式驱动已经实现。

使用特权

评论回复
地板
perseverance51|  楼主 | 2023-3-3 17:21 | 只看该作者
void I2C_Init(I2C_TypeDef * I2Cx, I2C_InitStructure * initStruct);
在SWM181_i2c.h文件中就提供了这么几个函数
void I2C_Open(I2C_TypeDef * I2Cx);
void I2C_Close(I2C_TypeDef * I2Cx);

uint8_t I2C_Start(I2C_TypeDef * I2Cx, uint8_t addr);
void I2C_Stop(I2C_TypeDef * I2Cx);
uint8_t I2C_Write(I2C_TypeDef * I2Cx, uint8_t data);
uint8_t I2C_Read(I2C_TypeDef * I2Cx, uint8_t ack);

void I2C_INTEn(I2C_TypeDef * I2Cx);
void I2C_INTDis(I2C_TypeDef * I2Cx);
void I2C_INTClr(I2C_TypeDef * I2Cx);
uint32_t I2C_INTStat(I2C_TypeDef * I2Cx);

使用特权

评论回复
5
perseverance51|  楼主 | 2023-3-3 17:26 | 只看该作者
看看STM32通过stm32cubemx自动生成的I2C硬件驱动函数,几分钟就可以通过硬件I2C接口点亮,我用SWM181花费几天都搞不定。国产当自强,不要刷锅!!!
   (#) Blocking mode functions are :
        (++) HAL_I2C_Master_Transmit()
        (++) HAL_I2C_Master_Receive()
        (++) HAL_I2C_Slave_Transmit()
        (++) HAL_I2C_Slave_Receive()
        (++) HAL_I2C_Mem_Write()
        (++) HAL_I2C_Mem_Read()
        (++) HAL_I2C_IsDeviceReady()

    (#) No-Blocking mode functions with Interrupt are :
        (++) HAL_I2C_Master_Transmit_IT()
        (++) HAL_I2C_Master_Receive_IT()
        (++) HAL_I2C_Slave_Transmit_IT()
        (++) HAL_I2C_Slave_Receive_IT()
        (++) HAL_I2C_Mem_Write_IT()
        (++) HAL_I2C_Mem_Read_IT()
        (++) HAL_I2C_Master_Seq_Transmit_IT()
        (++) HAL_I2C_Master_Seq_Receive_IT()
        (++) HAL_I2C_Slave_Seq_Transmit_IT()
        (++) HAL_I2C_Slave_Seq_Receive_IT()
        (++) HAL_I2C_EnableListen_IT()
        (++) HAL_I2C_DisableListen_IT()
        (++) HAL_I2C_Master_Abort_IT()

    (#) No-Blocking mode functions with DMA are :
        (++) HAL_I2C_Master_Transmit_DMA()
        (++) HAL_I2C_Master_Receive_DMA()
        (++) HAL_I2C_Slave_Transmit_DMA()
        (++) HAL_I2C_Slave_Receive_DMA()
        (++) HAL_I2C_Mem_Write_DMA()
        (++) HAL_I2C_Mem_Read_DMA()
        (++) HAL_I2C_Master_Seq_Transmit_DMA()
        (++) HAL_I2C_Master_Seq_Receive_DMA()
        (++) HAL_I2C_Slave_Seq_Transmit_DMA()
        (++) HAL_I2C_Slave_Seq_Receive_DMA()

    (#) A set of Transfer Complete Callbacks are provided in non Blocking mode:
        (++) HAL_I2C_MasterTxCpltCallback()
        (++) HAL_I2C_MasterRxCpltCallback()
        (++) HAL_I2C_SlaveTxCpltCallback()
        (++) HAL_I2C_SlaveRxCpltCallback()
        (++) HAL_I2C_MemTxCpltCallback()
        (++) HAL_I2C_MemRxCpltCallback()
        (++) HAL_I2C_AddrCallback()
        (++) HAL_I2C_ListenCpltCallback()
        (++) HAL_I2C_ErrorCallback()
        (++) HAL_I2C_AbortCpltCallback()

使用特权

评论回复
6
timerc| | 2023-3-6 11:43 | 只看该作者
就是懒,也就稍微改一下的功夫

使用特权

评论回复
7
primojones| | 2023-3-10 17:23 | 只看该作者
硬件I2C 到底是不是个坑               

使用特权

评论回复
8
gygp| | 2023-3-10 17:38 | 只看该作者
硬件iic和模拟iic有什么区别  

使用特权

评论回复
9
belindagraham| | 2023-3-10 17:53 | 只看该作者
这个代码是官网提供的吗?              

使用特权

评论回复
10
hilahope| | 2023-3-10 18:02 | 只看该作者
I2c总线一般拿来实现什么功能?  

使用特权

评论回复
11
everyrobin| | 2023-3-10 18:08 | 只看该作者
ssd1306的刷屏速度很快的吗?

使用特权

评论回复
12
jkl21| | 2023-3-10 18:23 | 只看该作者
SWM181的硬件I2C稳定吗              

使用特权

评论回复
13
biechedan| | 2023-3-11 19:40 | 只看该作者
提供了标准库函数了吗?              

使用特权

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

本版积分规则

2

主题

25

帖子

1

粉丝