zoukankan      html  css  js  c++  java
  • TI BLE CC2541的I2C主模式

    由于要写TM1680, 写命令跟写数据, 所以需要使用CC2541的I2C, 2541是有硬件I2C的.

    tm1680.c:

    #include "tm1680.h"

    //TM1680是先发送配置, 然后发送数据.
    void masterConfig(void);
    void masterSendData(void);

    void sendTest(void){
        //uint8 buffer[24]={0x0f,0x0e};
        //HalI2CWrite(2, buffer);
        //HalI2CRead(2,buffer);
        masterConfig();
        masterSendData();
    }

    void masterConfig(void){
        uint8 configArray[]={SYSDIS,COM16NMOS,RCMODE1,SYSEN,LEDON};
        HalI2CWrite(5, configArray);
    }

    //只有一个值得说的点, TM1680要先发送起始的页地址, 然后发送32位的数据.
    void masterSendData(void){
        uint8 dataArray[33];
        int i=0;
        dataArray[0]=0x00;
        for(i=1;i<33;i++){
            dataArray[i]=0xFF;
        }
        HalI2CWrite(33, dataArray);

    }

    void   HalTM1680Init(uint8 dev_addr )
    {
      HalI2CInit(dev_addr, i2cClock_533KHZ);
    }

    tm1680.h定义了一些命令的别名:

    #ifndef HAL_TM1680_H
    #define HAL_TM1680_H
    #include "hal_i2c.h"

    #include "hal_types.h"

    #define SYSDIS             0x80
    #define SYSEN             0x81
    #define LEDOFF             0x82
    #define LEDON           0x83
    #define BLINKOFF         0x88
    #define BLINK2HZ         0x89
    #define BLINK1HZ         0x8A
    #define BLINK0_5HZ     0x8B

    #define SLAVEMODE      0x90
    #define RCMODE0          0x98
    #define RCMODE1          0x9A
    #define EXTCLK0          0x9C
    #define EXTCLK1          0x9E

    #define COM8NMOS    0xA0
    #define COM16NMOS    0xA4
    #define COM8PMOS    0xA8
    #define COM16PMOS    0xAC

    void HalTM1680Init(uint8 dev_addr);
    void sendTest(void);

    #endif

    唯一的问题是硬件I2C两个byte中间等待了很久, 不知道为啥, 回头试试模拟的I2C吧.

  • 相关阅读:
    NSHashtable and NSMaptable
    架构的本质:构造定律与结合规则
    软件复用的基础和形式
    架构模式:循环模式、管道模式
    待整理
    functions and closures are reference types-函数和闭包是引用类型
    @autoclosure-可以让表达式自动封装成一个闭包:输入的是一个表达式
    Python 运算符优先级
    Linux下chkconfig命令详解
    Linux下Redis开机自启(Centos)
  • 原文地址:https://www.cnblogs.com/Montauk/p/5801974.html
Copyright © 2011-2022 走看看