打印

关于最近driver lib的库函数调用问题

[复制链接]
1555|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xuanfeng0109|  楼主 | 2015-4-25 11:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近在跟着论坛学习driver lib的库函数调用,在读取iic的时候,不知道如何来使用这些封装好的函数,这是我改的官方的,大家帮忙看看哈,不知道怎么了,目前没搞定,
#include "driverlib.h"

#define SLAVE_ADDRESS 0x80

uint8_t transmitData0;
uint8_t transmitData1;
uint8_t receivedData;


void main(void)
{
    //Stop WDT
    WDT_A_hold(WDT_A_BASE);

    //Assign I2C pins to USCI_B0
    GPIO_setAsPeripheralModuleFunctionInputPin(
        GPIO_PORT_P3,
        GPIO_PIN0 + GPIO_PIN1
        );

    //Initialize transmit data packet
    transmitData0 = 0x81;
    transmitData0 = 0xE0;

    //Initialize Master
    USCI_B_I2C_initMasterParam param = {0};
    param.selectClockSource = USCI_B_I2C_CLOCKSOURCE_SMCLK;
    param.i2cClk = UCS_getSMCLK();
    param.dataRate = USCI_B_I2C_SET_DATA_RATE_100KBPS;
    USCI_B_I2C_initMaster(USCI_B0_BASE, &param);

    //Specify slave address
    USCI_B_I2C_setSlaveAddress(USCI_B0_BASE,
                               SLAVE_ADDRESS
                               );

    //Set in transmit mode
    USCI_B_I2C_setMode(USCI_B0_BASE,
                       USCI_B_I2C_TRANSMIT_MODE
                       );

    //Enable I2C Module to start operations
    USCI_B_I2C_enable(USCI_B0_BASE);

    USCI_B_I2C_clearInterrupt(USCI_B0_BASE,
                                 USCI_B_I2C_RECEIVE_INTERRUPT
                                 );
       USCI_B_I2C_enableInterrupt(USCI_B0_BASE,
                                  USCI_B_I2C_RECEIVE_INTERRUPT
                                  );

        //Send single byte data.
        USCI_B_I2C_masterSendSingleByte(USCI_B0_BASE,
                                        transmitData0
                                        );

        //Delay until transmission completes
        while(USCI_B_I2C_isBusBusy(USCI_B0_BASE))
        {
            ;
        }
        USCI_B_I2C_masterSendSingleByte(USCI_B0_BASE,
                                        transmitData1
                                        );

        //Delay until transmission completes
        while(USCI_B_I2C_isBusBusy(USCI_B0_BASE))
        {
            ;
        }



               USCI_B_I2C_masterReceiveSingleStart(USCI_B0_BASE);
               receivedData = USCI_B_I2C_masterReceiveSingle(
                           USCI_B0_BASE);


}




#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=USCI_B0_VECTOR
__interrupt
#elif defined(__GNUC__)
__attribute__((interrupt(USCI_B0_VECTOR)))
#endif
void USCI_B0_ISR(void)
{

}

相关帖子

沙发
dirtwillfly| | 2015-4-25 15:20 | 只看该作者
你用的哪个msp430?

使用特权

评论回复
板凳
quray1985| | 2015-4-29 08:39 | 只看该作者
楼主发帖的时候,选择代码模式可读性更强一些

使用特权

评论回复
地板
xuanfeng0109|  楼主 | 2015-4-30 09:11 | 只看该作者
dirtwillfly 发表于 2015-4-25 15:20
你用的哪个msp430?

我用的msp430F5229使用硬件iic操作一个温湿度传感器,si7020,最近比较忙,没来论坛,:$

使用特权

评论回复
5
xuanfeng0109|  楼主 | 2015-4-30 09:11 | 只看该作者
quray1985 发表于 2015-4-29 08:39
楼主发帖的时候,选择代码模式可读性更强一些

好的,没注意这个,下次一定注意

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

10

帖子

0

粉丝