搜索
bottom↓
回复: 10

关于LPC812的IIC接口问题

[复制链接]

出0入0汤圆

发表于 2013-6-19 16:04:02 | 显示全部楼层 |阅读模式
int GetData(uchar REG_Address)
{
        UINT16 data;

    Buffer[0] = SlaveAddress | 0x01;
    Buffer[1] = REG_Address & 0x0FF;
   
        param.num_bytes_recv    = 2;
        param.buffer_ptr_recv   = &Buffer[0];
        param.stop_flag         = 1;

        do {
                error_code = LPC_I2CD_API->i2c_master_receive_poll(i2c_handle, &param, &result);
        } while (error_code);
   
    return *((UINT16 *)Buffer);
}

主机:LPC812
从机:MPU6050

从机地址:SlaveAddress
从机子地址:REG_Address

我想写一个函数读取器件“MPU6050子地址”里面的值。

各位熟悉IIC的帮我看,是不是我只要把“MPU6050子地址”顺序写在SlaveAddress 后面就可以了?
LPC_I2CD_API->i2c_master_receive_poll是nxp提供的函数。

现在error_code一直等于0x28.

另外想了解error_code的含义去哪里查找?

谢谢各位

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2013-6-19 16:18:17 | 显示全部楼层
你是用什么开发环境?是官方的例程吗?

出0入0汤圆

 楼主| 发表于 2013-6-19 16:51:03 | 显示全部楼层
leifeng 发表于 2013-6-19 16:18
你是用什么开发环境?是官方的例程吗?

keil4.7 是官方的例程

出0入0汤圆

 楼主| 发表于 2013-6-19 16:52:00 | 显示全部楼层
leifeng 发表于 2013-6-19 16:18
你是用什么开发环境?是官方的例程吗?

GetData是我自己写的 有问题

出0入0汤圆

 楼主| 发表于 2013-6-19 16:56:55 | 显示全部楼层
ksn13 发表于 2013-6-19 16:51
keil4.7 是官方的例程

例程

#if I2C_MASTER_MODE
/* Master Polling Mode */
static void App_I2C_Master_Polling(void)
{
        /* Transmit TmpBuffer */
        /* Initialize buffer */
        Buffer_Init(TmpBuffer, BUFFER_SIZE, 1);
        TmpBuffer[0] = I2C_SLAVE_ADDR_7BIT;

        param.num_bytes_send    = BUFFER_SIZE;
        param.buffer_ptr_send   = &TmpBuffer[0];
        param.stop_flag         = 1;
        do {
                error_code = LPC_I2CD_API->i2c_master_transmit_poll(i2c_handle, &param, &result);
        } while (error_code);

        /* Receive Buffer and compare with TmpBuffer */
        /* Initialize buffer */
        Buffer_Init(Buffer, BUFFER_SIZE, 0);
        Buffer[0] = I2C_SLAVE_ADDR_7BIT | 0x01;

        param.num_bytes_recv    = BUFFER_SIZE;
        param.buffer_ptr_recv   = &Buffer[0];
        param.stop_flag         = 1;
        do {
                error_code = LPC_I2CD_API->i2c_master_receive_poll(i2c_handle, &param, &result);
        } while (error_code);

        /* Verify */
        Buffer_Compare(TmpBuffer, Buffer, 1, BUFFER_SIZE);

        /* Transmit TmpBuffer and receive Buffer, then compare them together */
        /* Initialize buffer */
        Buffer_Init(Buffer, BUFFER_SIZE, 0);
        Buffer[0] = I2C_SLAVE_ADDR_7BIT | 0x01;

        TmpBuffer[0] = I2C_SLAVE_ADDR_7BIT;
        TmpBuffer[1] = 0xBA;

        param.num_bytes_send    = BUFFER_SIZE;
        param.buffer_ptr_send   = &TmpBuffer[0];
        param.num_bytes_recv    = BUFFER_SIZE;
        param.buffer_ptr_recv   = &Buffer[0];
        param.stop_flag         = 1;

        do {
                error_code = LPC_I2CD_API->i2c_master_tx_rx_poll(i2c_handle, &param, &result);
        } while (error_code);

        /* Verify */
        Buffer_Compare(TmpBuffer, Buffer, 1, BUFFER_SIZE);
}

出0入0汤圆

发表于 2013-9-27 22:14:14 | 显示全部楼层
请教楼主一些问题:

1.lpc单片机主要应用那些领域?lpc是恩智浦的单片机吗?
2.我看了P89LPC952的文档,发现和STC单片机的内容有惊人的相似。主要是寄存器名称,大体功能痛,只不过STC的文档比较难看一点
3.写lpc程序也是用keil C软件吗?

虽然用了好几年单片机,虽然不是老手,但是也算用得得心应手,但是对lpc还是比较陌生。

出0入0汤圆

 楼主| 发表于 2013-9-29 09:16:14 | 显示全部楼层
fqc168 发表于 2013-9-27 22:14
请教楼主一些问题:

1.lpc单片机主要应用那些领域?lpc是恩智浦的单片机吗?

1. 是
3. 是

出0入0汤圆

发表于 2014-10-17 15:53:43 | 显示全部楼层
LPC812现在是什么价格啊?

出0入0汤圆

发表于 2014-10-17 22:18:58 来自手机 | 显示全部楼层
w534172 发表于 2014-10-17 15:53
LPC812现在是什么价格啊?

淘宝上 7、8块钱左右吧。

出0入0汤圆

发表于 2014-10-17 22:20:41 来自手机 | 显示全部楼层
楼主有没有用到串口啊?我用发送中断做的程序  数据量大会漏发

出0入0汤圆

 楼主| 发表于 2014-10-20 10:00:01 | 显示全部楼层
xyq4513 发表于 2014-10-17 22:20
楼主有没有用到串口啊?我用发送中断做的程序  数据量大会漏发

肯定是你自己代码写的有问题,仔细分析一下程序看看为什么漏发。其它的原因暂时不需要考虑。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-17 16:32

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表