工具/软件:TI C/C++编译器
大家好、
我目前正在进行一个小型游戏、该游戏需要很多 LED 才能正常工作、因此我决定尝试使用端口扩展器来执行该项目。 遗憾的是、我没有 I2C 方面的经验、因此我不知道我的当前代码为什么不起作用。
我的当前代码:
#include
#include
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "driverlib/debug.h"
#include "driverlib/pwm.h"
#include "driverlib/pin_map.h"
#include "inc/hw_gpio.h"
#include "driverlib/rom.h"
#include "inc/hw_i2c.h"
#include "driverlib/i2c.h"
#define SLAVE_ADDRESS 0x20
void writeByte (int dataByte1、int dataByte2){//向从站发送数据
I2CMasterDataPut (I2C1_base、dataByte1);
I2CMasterControl (I2C1_base、I2C_MASTER_CMD_BURST_SEND_START);
while (I2CMasterBusy (I2C1_base))
{
}
I2CMasterDataPut (I2C1_base、dataByte2);
I2CMasterControl (I2C1_base、I2C_MASTER_CMD_BURST_SEND_FINISH);
while (I2CMasterBusy (I2C1_base))
{
}
}
int main (空)
{
SysCtlClockSet (SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHz);
//初始化 I2C 端口/时钟
SysCtlPeripheralEnable (SYSCTL_Periph_I2C1);
SysCtlPeripheralReset (SYSCTL_Periph_I2C1);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
GPIOPinConfigure (GPIO_PA6_I2C1SCL);
GPIOPinConfigure (GPIO_PA7_I2C1SDA);
GPIOPinTypeI2CSCL (GPIO_Porta_base、GPIO_PIN_6);
GPIOPinTypeI2C (GPIO_Porta_base、GPIO_PIN_7);
I2CMasterInitExpClk (I2C1_base、SysCtlClockGet ()、false);
I2CMasterSlaveAddrSet (I2C1_base、slave_address、false);
//要发送的数据
writeByte (0x00、0x00);
writeByte (0x12、0xFF);
返回0;
}
从器件地址应该正确、并且所有函数都在正确编译、但我可以使用扩展器实现任何操作。 有什么想法吗?