打印
[STM32F0]

STM32F030的I2C发送数据的问题

[复制链接]
377|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2024-1-26 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在调试STM32F030单片机的I2C总线,现在虽然参考官方实例调试成功了 但是有一些地方还不是很明白,暂时也未看懂,希望知道的大神可以赐教 小弟先谢过了!

void I2C_uWriteData(INT8U SlaveAddr,INT16U WriteAddr,INT8U WriteLen,INT8U *WriteBuf)
{
INT8U i;

while(I2C_GetFlagStatus(I2C1,I2C_FLAG_BUSY));
I2C_TransferHandling(I2C1,SlaveAddr,2,I2C_Reload_Mode,I2C_Generate_Start_Write);   // I2C_SoftEnd_Mode
while(I2C_GetFlagStatus(I2C1,I2C_FLAG_TXIS) == RESET);
I2C_SendData(I2C1,WriteAddr >> 8);
while(I2C_GetFlagStatus(I2C1,I2C_FLAG_TXIS) == RESET);
I2C_SendData(I2C1,WriteAddr % 256);
while(I2C_GetFlagStatus(I2C1,I2C_FLAG_TCR) == RESET);
I2C_TransferHandling(I2C1,SlaveAddr,WriteLen,I2C_AutoEnd_Mode,I2C_No_StartStop);   // I2C_Generate_Start_Write
for(i=0;i

使用特权

评论回复
沙发
tpgf| | 2024-2-5 16:52 | 只看该作者
楼主详细描述一下到底是哪里不是很明白呢

使用特权

评论回复
板凳
heimaojingzhang| | 2024-2-5 17:15 | 只看该作者
如果楼主可以正常接收数据的话 应该没有没有什么大问题

使用特权

评论回复
地板
keaibukelian| | 2024-2-5 17:31 | 只看该作者
可以使用示波器看一下波形 然后对照自己的配置 就能有一定的了解

使用特权

评论回复
5
暖了夏天蓝了海| | 2024-2-20 12:42 | 只看该作者
你发出来的这段代码不就是发送数据的么?

使用特权

评论回复
6
一秒落纱| | 2024-2-20 15:30 | 只看该作者
是写地址什么的不懂吗?

使用特权

评论回复
7
远山寻你| | 2024-2-20 18:00 | 只看该作者
你不懂哪里?其实你可以说出来的

使用特权

评论回复
8
三生万物| | 2024-2-20 21:00 | 只看该作者
一般来说,I2C就直接用官方的例程就行,都是这么用的

使用特权

评论回复
9
别乱了阵脚| | 2024-2-21 00:30 | 只看该作者
能调试成功就行了吧,能读能写就可以了

使用特权

评论回复
10
夜阑风雨| | 2024-2-21 03:00 | 只看该作者
你可以仿真看看程序的执行顺序,就知道I2C的运行逻辑了

使用特权

评论回复
11
光辉梦境| | 2024-2-21 06:30 | 只看该作者
我建议可以看看I2C的工作机制,再配合代码,基本就可以

使用特权

评论回复
12
淡漠安然| | 2024-2-21 09:00 | 只看该作者
我一般都是喜欢用模拟I2C的方式,这种虽然时序需要调整,但是真的很稳定

使用特权

评论回复
13
江河千里| | 2024-2-21 12:00 | 只看该作者
话说,STI2C不是不怎么稳么?咋还都用硬件的I2C

使用特权

评论回复
14
冰春彩落下| | 2024-2-21 18:00 | 只看该作者
其实也不需要很懂,直接用就好

使用特权

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

本版积分规则

1414

主题

3814

帖子

5

粉丝