4031|11

14

帖子

0

资源

一粒金砂(中级)

新手TM4C123GH6PM的软件I2C求教

    各位大神,我在用TM4C123GH6pm读MPU6050时用到了I2C协议,可是这块板子目前貌似内有类似 的教程,还请个位大神不吝指教。谢谢!!

回复

179

帖子

0

资源

一粒金砂(中级)

软件I2C不就是弄弄GPIO ,仿照51的程序写一个就行

回复

5788

帖子

453

资源

五彩晶圆(高级)

你看TI提供的例子,如何用I2C接口资源

回复

14

帖子

0

资源

一粒金砂(中级)

蓝雨夜 发表于 2015-4-1 10:48
你看TI提供的例子,如何用I2C接口资源

请问哪里有I2C的例子呀,找了好久也没找到,还望您能指点迷津,或者给个程序也行,谢谢!现在比较急

点评

去TI下 TivaWare_C_Series-2.1.0.12573\sensorlib [attachimg]193137[/attachimg]  详情 回复 发表于 2015-4-1 14:01

回复

14

帖子

0

资源

一粒金砂(中级)

Linchpin 发表于 2015-4-1 10:40
软件I2C不就是弄弄GPIO ,仿照51的程序写一个就行

可能我说错了,我想用M4的库函数实现I2C读数,不是去模拟I2C协议,请问你有这方面的编程经验吗?

点评

那是硬件I2C,,硬件I2C我弄过,,但还是比较难弄的,我花了一天半才完全搞明白。。有什么不懂的可以问我  详情 回复 发表于 2015-4-1 23:04

回复

5788

帖子

453

资源

五彩晶圆(高级)

einspyon 发表于 2015-4-1 13:24
请问哪里有I2C的例子呀,找了好久也没找到,还望您能指点迷津,或者给个程序也行,谢谢!现在比较急

去TI下

TivaWare_C_Series-2.1.0.12573\sensorlib



111.PNG

点评

好像有点难看的懂, 但还是非常感谢  详情 回复 发表于 2015-4-3 14:52

回复

179

帖子

0

资源

一粒金砂(中级)

einspyon 发表于 2015-4-1 13:25
可能我说错了,我想用M4的库函数实现I2C读数,不是去模拟I2C协议,请问你有这方面的编程经验吗?

那是硬件I2C,,硬件I2C我弄过,,但还是比较难弄的,我花了一天半才完全搞明白。。有什么不懂的可以问我

回复

14

帖子

0

资源

一粒金砂(中级)

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));



}

点评

你这个读取I2C的程序完全正确,没有问题!! 可能是其它方面出的问题,你再好好找找  详情 回复 发表于 2015-4-4 23:10
现在我也很头疼,还没搞定呢!  详情 回复 发表于 2015-4-4 17:16
你这个实现没?你能把你的SDA,SCL和模块时钟这三个的配置操作代码上传不?刚学,各种不确定,求带  详情 回复 发表于 2015-4-4 14:35

回复

14

帖子

0

资源

一粒金砂(中级)

蓝雨夜 发表于 2015-4-1 14:01
去TI下

TivaWare_C_Series-2.1.0.12573\sensorlib

好像有点难看的懂, 但还是非常感谢

回复

93

帖子

0

资源

一粒金砂(中级)

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));



}

你这个实现没?你能把你的SDA,SCL和模块时钟这三个的配置操作代码上传不?刚学,各种不确定,求带

回复

14

帖子

0

资源

一粒金砂(中级)

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));



}

现在我也很头疼,还没搞定呢!

回复

179

帖子

0

资源

一粒金砂(中级)

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的程序完全正确,没有问题!!   可能是其它方面出的问题,你再好好找找

回复
您需要登录后才可以回帖 登录 | 注册

关闭
站长推荐上一条 1/3 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表