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吧.

  • 相关阅读:
    Centos 7 快速安装 Docker
    MySQL乱码
    阿里云中linux 下svn服务器安装
    java中易错点(二)
    java中易错点(一)
    mysql5.7.24 解压版安装步骤以及遇到的问题
    linux交换分区调整
    linux之切换用户su(switch user)
    linux简单常用命令
    Yum简单使用小结
  • 原文地址:https://www.cnblogs.com/Montauk/p/5801974.html
Copyright © 2011-2022 走看看