主题中讨论的其他器件:TM4C123
我正在尝试将 TM4C 配置为从设备、以便与用于 I2C 的 Raspberry Pi 3主设备配合使用。 我使用的是直接寄存器访问、而不是 TivaWare。 我找不到任何有关这方面的文档。 我使用了以下代码、但它不会写入调试器中的 I2C 寄存器。 我尝试写入 SCSR 寄存器以将其作为从机启用、但它仍然为0。 我是否在初始化中缺少某些内容?
// I2C0SCL 连接到 PB2
// I2C0SDA 连接到 PB3
void I2C_Slave_Init (void){
SYSCTL_RCGCI2C_R |= 0x0001;//激活 I2C0
SYSCTL_RCGCGPIO_R |= 0x0002;//激活端口 B
while (((SYSCTL_PRGPIO_R&0x0002)==0){};//准备好了?
GPIO_PORTB_AFSEL_R |= 0x0C;// 3)在 PB2、3上启用 alt funt
GPIO_PORTB_ODR_R |= 0x08;// 4)仅在 PB3上启用开漏
GPIO_PORTB_DEN_R |= 0x0C;// 5)在 PB2、3上启用数字 I/O
// 6)将 PB2、3配置为 I2C
GPIO_PORTB_PCTL_R =(GPIO_PORTB_PCTL_R&0xFFFFFF)+ 0x00003300;
GPIO_PORTB_AMSEL_R &=~0x0C;// 7)禁用 PB2、3上的模拟功能
I2C0_SCSR_R |= 0x01;//启用从设备
I2C0_Soar_R =(I2C0_Soar_R 和~0x7F)| 0x3C;// 9)从器件地址
}