新手TM4C123GH6PM的软件I2C求教

2019-03-24 10:22发布

    各位大神,我在用TM4C123GH6pm读MPU6050时用到了I2C协议,可是这块板子目前貌似内有类似 的教程,还请个位大神不吝指教。谢谢!!
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
einspyon
1楼-- · 2019-03-25 13:06
Linchpin 发表于 2015-4-1 23:04
那是硬件I2C,,硬件I2C我弄过,,但还是比较难弄的,我花了一天半才完全搞明白。。有什么不懂的可以问我

我现在在读MPU6050,下面是我向MPU6050的内部某个寄存器写入一个字节的数据,麻烦帮我看下有没有问题,谢谢,谢谢!


void I2C_write(unsigned char reg_address, unsigned char data)

{



        I2CMasterSlaveAddrSet(I2C1_BASE, slave_address, false);   //  false代表主模块发送,从模块接收



        I2CMasterDataPut(I2C1_BASE, reg_address);        //  发送寄存器地址

    I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_START);

    while(I2CMasterBusy(I2C1_BASE));



        I2CMasterDataPut(I2C1_BASE, data);               // 发送数据

        I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_CONT);

    while(I2CMasterBusy(I2C1_BASE));



        I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_STOP);

    while(I2CMasterBusy(I2C1_BASE));



}

einspyon
2楼-- · 2019-03-25 16:48
蓝雨夜 发表于 2015-4-1 14:01
去TI下

TivaWare_C_Series-2.1.0.12573sensorlib

好像有点难看的懂, 但还是非常感谢
1301120345
3楼-- · 2019-03-25 22:35
 精彩回答 2  元偷偷看……
einspyon
4楼-- · 2019-03-26 01:42
einspyon 发表于 2015-4-3 14:48
我现在在读MPU6050,下面是我向MPU6050的内部某个寄存器写入一个字节的数据,麻烦帮我看下有没有问题,谢谢,谢谢!


void I2C_write(unsigned char reg_address, unsigned char data)

{



        I2CMasterSlaveAddrSet(I2C1_BASE, slave_address, false);   //  false代表主模块发送,从模块接收



        I2CMasterDataPut(I2C1_BASE, reg_address);        //  发送寄存器地址

    I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_START);

    while(I2CMasterBusy(I2C1_BASE));



        I2CMasterDataPut(I2C1_BASE, data);               // 发送数据

        I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_CONT);

    while(I2CMasterBusy(I2C1_BASE));



        I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_STOP);

    while(I2CMasterBusy(I2C1_BASE));



}

现在我也很头疼,还没搞定呢!
Linchpin
5楼-- · 2019-03-26 06:46
einspyon 发表于 2015-4-3 14:48
我现在在读MPU6050,下面是我向MPU6050的内部某个寄存器写入一个字节的数据,麻烦帮我看下有没有问题,谢谢,谢谢!


void I2C_write(unsigned char reg_address, unsigned char data)

{



        I2CMasterSlaveAddrSet(I2C1_BASE, slave_address, false);   //  false代表主模块发送,从模块接收



        I2CMasterDataPut(I2C1_BASE, reg_address);        //  发送寄存器地址

    I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_START);

    while(I2CMasterBusy(I2C1_BASE));



        I2CMasterDataPut(I2C1_BASE, data);               // 发送数据

        I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_CONT);

    while(I2CMasterBusy(I2C1_BASE));



        I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_STOP);

    while(I2CMasterBusy(I2C1_BASE));



}

你这个读取I2C的程序完全正确,没有问题!!   可能是其它方面出的问题,你再好好找找

一周热门 更多>

相关问题

    相关文章