查看: 7458|回复: 5

[原创] 【LPC1768】7.IIC测试

[复制链接]
  • TA的每日心情
    擦汗
    昨天 15:50
  • 签到天数: 1874 天

    连续签到: 5 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112714
    最后登录
    2025-8-31
    发表于 2019-3-19 21:59:44 | 显示全部楼层 |阅读模式
    本帖最后由 stm1024 于 2019-3-19 22:04 编辑

    最近真特么忙啊。有时间赶紧把IIC测试了一下。之前论坛里面已经有把PCA9551玩的各种溜的网友,也大致瞄了一下,应该采用的是CMSIS库,这个其实挺不错的,但是我已经选择了LPCOpen,就打算一条路走到黑了,操起PCA9551的datasheet看了一会,就可以开搞了。以下了我使用该库写的测试例程。
    talk is cheap,上代码:
    1. #include "chip.h"
    2. #include "gpio_17xx_40xx.h"
    3. #include "i2c_17xx_40xx.h"

    4. #define PCA9551_I2C_ADDR                (0xc0>>1)

    5. #ifndef CHIP_LPC175X_6X
    6.         #define CHIP_LPC175X_6X
    7. #endif

    8. uint8_t buff[2]={0,0};
    9. uint8_t cache;
    10. void SystemInit()
    11. {
    12.         Chip_SetupIrcClocking();
    13.         SystemCoreClockUpdate();
    14. }

    15. int main()
    16. {
    17.         LPC_IOCON->PINSEL[1]=0x01400000;
    18.         Chip_I2C_Init(I2C0);
    19.         Chip_I2C_SetClockRate(I2C0,100000);//100KHz        
    20.         NVIC_DisableIRQ(I2C0_IRQn);
    21.         Chip_I2C_SetMasterEventHandler(I2C0, Chip_I2C_EventHandlerPolling);
    22.         //config pwm0
    23.         buff[0]=1;
    24.         buff[1]=18;
    25.         Chip_I2C_MasterSend(I2C0,PCA9551_I2C_ADDR,buff,2);        
    26.         buff[0]=2;
    27.         buff[1]=128;
    28.         Chip_I2C_MasterSend(I2C0,PCA9551_I2C_ADDR,buff,2);
    29.         //config  pwm1
    30.         buff[0]=3;
    31.         buff[1]=5;
    32.         Chip_I2C_MasterSend(I2C0,PCA9551_I2C_ADDR,buff,2);        
    33.         buff[0]=37;
    34.         buff[1]=240;
    35.         Chip_I2C_MasterSend(I2C0,PCA9551_I2C_ADDR,buff,2);
    36.         while(1)
    37.         {
    38.                 buff[0]=0;
    39.                 Chip_I2C_MasterSend(I2C0,PCA9551_I2C_ADDR,buff,1);
    40.                 Chip_I2C_MasterRead(I2C0,PCA9551_I2C_ADDR,&cache,1);
    41.                 if((cache&0x0f)==0x0e)
    42.                 {
    43.                         buff[0]=6;
    44.                         buff[1]=0x55;//all off
    45.                         Chip_I2C_MasterSend(I2C0,PCA9551_I2C_ADDR,buff,2);
    46.                 }
    47.                 if((cache&0x0f)==0x0d)
    48.                 {
    49.                         buff[0]=6;
    50.                         buff[1]=0x00;//all on
    51.                         Chip_I2C_MasterSend(I2C0,PCA9551_I2C_ADDR,buff,2);
    52.                 }
    53.                 if((cache&0x0f)==0x0b)
    54.                 {
    55.                         buff[0]=6;
    56.                         buff[1]=0xaa;//blink0
    57.                         Chip_I2C_MasterSend(I2C0,PCA9551_I2C_ADDR,buff,2);
    58.                 }
    59.                 if((cache&0x0f)==0x07)
    60.                 {
    61.                         buff[0]=6;
    62.                         buff[1]=0xff;//blink1
    63.                         Chip_I2C_MasterSend(I2C0,PCA9551_I2C_ADDR,buff,2);
    64.                 }
    65.         }
    66.         //return 0;
    67. }

    复制代码
    听说现在流行发GIF了?
    30c026408a7243aef223a558f78a6a98~2.gif

    最后低调地吐槽一下,这个类库特么很多PINSEL都丢着没管,这样很影响使用啊喂。

    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 10:48
  • 签到天数: 2411 天

    连续签到: 8 天

    [LV.Master]伴坛终老

    56

    主题

    5316

    帖子

    73

    金牌会员

    Rank: 6Rank: 6

    积分
    26014
    最后登录
    2025-8-31
    发表于 2019-3-19 22:05:36 | 显示全部楼层
    支持一下,管他用什么库,只要能让程序跑起来就行
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-8-8 16:43
  • 签到天数: 1504 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    97

    主题

    4693

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    10096
    最后登录
    2025-8-31
    发表于 2019-3-20 17:33:26 | 显示全部楼层
    我是自己使用寄存器写的。
    我真心觉得LPC的IIC的寄存器好简单!
    这个专利还是挺值的。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 15:50
  • 签到天数: 1874 天

    连续签到: 5 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112714
    最后登录
    2025-8-31
     楼主| 发表于 2019-3-20 19:53:26 | 显示全部楼层
    本帖最后由 stm1024 于 2019-5-3 10:13 编辑
    jobszheng5 发表于 2019-3-20 17:33
    我是自己使用寄存器写的。
    我真心觉得LPC的IIC的寄存器好简单!
    这个专利还是挺值的。 ...

    寄存器确实很简单,但是要自己操心很多状态值
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2019-5-1 06:15
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    0

    主题

    91

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    207
    最后登录
    2021-8-4
    发表于 2019-5-1 06:18:39 | 显示全部楼层
    谢谢分享
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    0

    新手上路

    Rank: 1

    积分
    40
    最后登录
    2022-7-24
    发表于 2022-7-24 18:31:22 | 显示全部楼层
    版主您好!我用LPCOpen的I2C库,读写都不对可否指点一下!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-1 03:51 , Processed in 0.087151 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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