您好!
FR5969中的同一问题、没有解决方案发送正确的从器件地址。
我正在尝试向 OLED 显示屏126x64 0.96"发送数据、但无法从该显示屏获得回复。
我想知道、这是否会是从 MCU 发送地址的问题、因为显示屏在另一个 MCU 上工作。
不过、在示波器上、我可以看到地址已发送、但8位数据不会跟随。
我卡在同一环路中: while (!(HWREG16 (baseAddress + OFS_UCBxIFG)& UCTXIFG);
我是否可以执行任何操作来从器件旁路确认位?
下面是我的完整代码:
#include "driverlib.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define Slave_Address 0x78
void main (void)
{
WDT_A_HOLD (WDT_A_base);
PM5CTL0 &=~LOCKLPM5;
CS_setDCOFreq (CS_DCORSEL_0、CS_DCOFSEL_3);
CS_initClockSignal (CS_MCLK、CS_DCOCLK_select、CS_Clock_divider);
CS_initClockSignal (CS_SMCLK、CS_DCOCLK_SELECT、CS_Clock_divider);
GPIO_setPeripheralModuleFunctionInputPin (
GPIO_PORT_P1、
GPIO_PIN6 + GPIO_PIN7、
GPIO_secondary 模块功能);
EUSCI_B_I2C_initMasterParam param ={0};
param.selectClockSource = EUSCI_B_I2C_CLOCKSOURCE_SMCLK;
param.i2cClk = CS_getSMCLK ();
param.datarate = EUSCI_B_I2C_SET_DATA_RATE_400KBPS;
param.byteCounterThreshold = 1;
param.autoSTOPGeneration = EUSCI_B_I2C_NO_AUTO_STOP;
EUSCI_B_I2C_initMaster (EUSCI_B0_BASE、param);
EUSCI_B_I2C_setSlaveAddress (EUSCI_B0_BASE、Slave_Address);// indirizzo dello 从器件
EUSCI_B_I2C_setMode (EUSCI_B0_BASE、EUSCI_B_I2C_TRANSMITH_MODE);//定义 ISCO UC 成为 TRASMISSIONE 的主器件
EUSCI_B_I2C_ENABLE (EUSCI_B0_BASE);// ABIILITO LA I2C
GPIO_setAsOutputPin (GPIO_PORT_P1、GPIO_PIN0);//LED2
uint8_t I2C_msg = 0xAA;
GPIO_setOutputHighOnPin (GPIO_PORT_P1、GPIO_PIN0);// ALZO IL 引脚支持 LED
while (1)
{
EUSCI_B_I2C_masterSendSingleByte (EUSCI_B0_BASE、I2C_msg);
}
}