请选择 进入手机版 | 继续访问电脑版
查看: 247|回复: 4

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

[复制链接]
  • TA的每日心情

    昨天 07:55
  • 签到天数: 203 天

    [LV.7]常住居民III

    43

    主题

    2709

    帖子

    63

    金豆

    超级版主

    Rank: 8Rank: 8

    积分
    14031
    最后登录
    2019-6-17
    发表于 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的每日心情
    难过
    昨天 07:27
  • 签到天数: 528 天

    [LV.9]以坛为家II

    46

    主题

    1760

    帖子

    73

    金豆

    金牌会员

    Rank: 6Rank: 6

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 14:31
  • 签到天数: 172 天

    [LV.7]常住居民III

    16

    主题

    422

    帖子

    12

    金豆

    高级会员

    Rank: 4

    积分
    920
    最后登录
    2019-6-17
    发表于 2019-3-20 17:33:26 | 显示全部楼层
    我是自己使用寄存器写的。
    我真心觉得LPC的IIC的寄存器好简单!
    这个专利还是挺值的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    昨天 07:55
  • 签到天数: 203 天

    [LV.7]常住居民III

    43

    主题

    2709

    帖子

    63

    金豆

    超级版主

    Rank: 8Rank: 8

    积分
    14031
    最后登录
    2019-6-17
     楼主| 发表于 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 天

    [LV.2]偶尔看看I

    0

    主题

    91

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    201
    最后登录
    2019-5-1
    发表于 2019-5-1 06:18:39 | 显示全部楼层
    谢谢分享
    开心!!!
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2019-6-18 02:39 , Processed in 0.165547 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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