Thread 中讨论的其他器件: EK-TM4C1294XL
工具/软件:Code Composer Studio
大家好、
我正在尝试 TM4C1294KCPDT 的 I2C0为12位 DAC (Microchip 的 MSP4725评估板)发送数据、以熟悉微控制器硬件接口。
设置为:
I2C:SCL-->PortB PIN2
SDA-->端口 B 引脚3
速度为100kbps 或400kbps
从器件(MSP4725)地址为0xC0。
VDD:3.3V
我可以在示波器上看到 I2C 发送地址0x80而不是0xC0、这会导致通信停止、因为未选择从器件。
我使用 PICkit 串行分析器试用了 MSP4725评估板、该评估板按预期工作、因为我可以根据需要更改 DAC 输出的电压。
在 TM4C1294的 I2C 中、似乎存在故障。
PICkit 串行分析器: https://www.microchip.com/Developmenttools/ProductDetails/DV164122:
MSP4725评估板: http://ww1.microchip.com/downloads/en/devicedoc/51669a.pdf
I2C 不起作用让我有点惊讶。 有人可以帮帮我吗?
下面是一个简单的示例:
// //// main()// ********* int main (void) { static uint32_t ui32SysClkFreq、u32GetClkFreq = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSC_MAIN | SYSC1200TL_USE_PLL | SysCtl_VCO_GPIOPTL ) ;SYSCB2_Periptl (SYSC0_IPB2_0_RESETH);SYSC0_IPB0 (SYSCB0_IPPEPTL)(SYSC0_IPB0_IP_IP_IPB0);SYSCB0_IP_IP_IPPECTL (SYSC0_IPPEPTL_0_IPPEPTH) //为 LED 启用端口 N 以进行调试 //配置 SDA o PORTB PIN3 GPIOPinConfigure (GPIO_PB3_I2C0SDA); GPIOPINTypeI2C (GPIO_PORTB_BASE、GPIO_PIN_3); //配置 SCL o PORTB PIN2 GPIOP2_BASE (GPIOP2C0_PHASE );//将 GPIOPT0_GPIOPT0_PIN_INTS0 和 GPIOPT0_GPIOPT0_PIN_GPIO0/ GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIOPT_GPIO0_GPIOPT_GPIO0_GPIOPT_PHASE;//将 GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIO0_GPIOPT_GPIO0_GPIOPT_GPIO0_GPIO0_GPIO0_GPIO // a120Mhz while (I2CMasterBusy (I2C0_BASE)); I2CMasterSlaveAddrSet (I2C0_BASE、0xC0、false);设置从地址 I2CMasterBusy ( I2C0_BASE、I2C_MASTER、I2CMD_ SIMP_SIMP_0 ) ;I2CM0_I2CM0_SIaster0_I2CM0_SIBT_SIMP_SIMP_SION_SIMP_SIMP_SIMP_SION_SIMP_SIMP_SIMP_SIMP_SIMP_SIMP_SION_SIMP_SIMP_SIMP_SION_SIMP_SIMP_SIMP_SION_SIMP_SIMP_SION_SION_SIMP_SION_SIMP_SION_SION_SION_SIMPIST/ I2CM0_SIST_SIMP_SIMP_SIMP_SIMP_SIMP_SIMP_SIMP_SIMP_SIMP_SIMP_SIMP_SIMP_SIMP 3); while (1) { SysCtlDelay (ui32SysClkFreq /(3 * 5)); GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_0、1); SysDelay (ui32SysClkFreq /(3 * 5))); GPIOPinWrite (GPIO_PORTN_BASE ) ;0}SysPIN_BASE、GPIO





