打印
[技术问题解答]

PE生成的I2C流数据读取信号每次只能读到1个字节(已解决)

[复制链接]
1960|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mengyue520|  楼主 | 2014-6-17 19:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 FSL_TICS_A 于 2014-7-2 15:46 编辑

芯片是KL25Z128,为什么用PE生成的I2C流数据读取信号,每次只能读到1个字节数据就发个停止位终结了呢?代码如下,子函数全部由PE生成:
void temp_ctrl(void)
{
        //设置温度低阀值寄存器
        I2C_Enable(I2C_DeviceData);
        user_delay_1ms(5);
        I2C_SelectSlaveDevice(I2C_DeviceData, LDD_I2C_ADDRTYPE_7BITS, (0x90>>1));
        user_delay_1ms(5);
        tmp_send_buffer[0] = TMP_TEMP_ADDRESS;
        I2C_MasterSendBlock(I2C_DeviceData, tmp_send_buffer, 1U, LDD_I2C_SEND_STOP);
        user_delay_1ms(5);
        I2C_Disable(I2C_DeviceData);        
        user_delay_1ms(5);
               
        //设置温度低阀值寄存器
        I2C_Enable(I2C_DeviceData);
        user_delay_1ms(5);
        I2C_SelectSlaveDevice(I2C_DeviceData, LDD_I2C_ADDRTYPE_7BITS, (0x91>>1));
        user_delay_1ms(5);
        I2C_MasterReceiveBlock(I2C_DeviceData, tmp_recv_buffer,2, LDD_I2C_SEND_STOP);
        user_delay_1ms(50);
        I2C_Disable(I2C_DeviceData);
        user_delay_1ms(5);
}

相关帖子

沙发
FSL_TICS_Robin| | 2014-6-18 08:51 | 只看该作者
请问楼主的I2C具体设置,比如波特率(如果I2Cx_F[MULT]非0,repeat start将无法生成)。
建议你把PE配置页面截张图,以便大家更容易了解你问题的情况。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
mengyue520 + 2 很给力!
板凳
FSL_TICS_Robin| | 2014-6-18 08:54 | 只看该作者
FSL_TICS_Robin 发表于 2014-6-18 08:51
请问楼主的I2C具体设置,比如波特率(如果I2Cx_F[MULT]非0,repeat start将无法生成)。
建议你把PE配置页 ...

另外在 手把手系列之官方例程讲解大全-Kinetis系列 中有一篇例程就是讲解PE下使用I2c与加速度传感器通信的:
KL25加速度传感器PE例程

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
mengyue520 + 2 赞一个!
地板
mengyue520|  楼主 | 2017-5-14 22:48 | 只看该作者
谢谢大家,21上的少,忘记结贴了,不好意思啊!

使用特权

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

本版积分规则

5

主题

79

帖子

0

粉丝