5626|11

11

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

新手TM4C123GH6PM的软件I2C求教 [复制链接]

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

最新回复

你这个读取I2C的程序完全正确,没有问题!!   可能是其它方面出的问题,你再好好找找   详情 回复 发表于 2015-4-4 23:10
 
点赞 关注

回复
举报

164

帖子

0

TA的资源

一粒金砂(中级)

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

回复

5310

帖子

453

TA的资源

五彩晶圆(高级)

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

回复

11

帖子

0

TA的资源

一粒金砂(中级)

4
 
蓝雨夜 发表于 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
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

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

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

点评

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

回复

5310

帖子

453

TA的资源

五彩晶圆(高级)

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

去TI下

TivaWare_C_Series-2.1.0.12573\sensorlib




点评

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

回复

164

帖子

0

TA的资源

一粒金砂(中级)

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

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

回复

11

帖子

0

TA的资源

一粒金砂(中级)

8
 
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
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

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

TivaWare_C_Series-2.1.0.12573\sensorlib

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

回复

81

帖子

0

TA的资源

一粒金砂(中级)

10
 
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和模块时钟这三个的配置操作代码上传不?刚学,各种不确定,求带
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

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



}

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

回复

164

帖子

0

TA的资源

一粒金砂(中级)

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

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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