工具与软件:
您好!
我想 对具有不同引脚的 SPI 和 I2C 使用 eUSCI_B1。 但它并不能一起工作。 如何解决?
void InitI2C (unsigned char EEPROM_i2c_address)
{
SYSCFG3&=~USCIB1RMP;
P3SEL0 |= BIT2 | BIT6;// I2C 引脚
P3SEL1 &=~Ω(BIT2 | BIT6);
//禁用 GPIO 上电默认高阻抗模式以激活
//先前配置的端口设置
PM5CTL0 &=~μ H LOCKLPM5;
UCB1CTLW0 = UCSWRST;//启用软件复位
UCB1CTLW0 |= UCMODE_3 | UCMST | UCSSEL__SMCLK | UCSYNC;// I2C 主模式、SMCLK
UCB1BRW = 160;// fSCL = SMCLK/160 =~100kHz
UCB1I2CSA = EEPROM_i2c_address;//从器件地址
UCB1CTLW0 &=~μ s UCSWRST;//清除软件复位、恢复操作
UCB1IE |= UCNACKIE;
}
空 Strip_Init (){
//为 SPI 输出配置 P4.4
SYSCFG3|=USCIB1RMP;
P4SEL0 |=位4;
P4SEL1 &=~BIT4;
// P4SEL1 =(0);
//初始化 SPI 模块
UCB1CTLW0 |= UCSWRST;//将 SPI 模块置于复位状态
//配置 SPI 设置:时钟极性、时钟相位等
UCB1CTLW0 |= UCSYNC | UCCKPL | UCMSB | UCMST | UCSSEL_2;
UCB1BRW = 0x03;//设置时钟分频器
UCB1CTLW0 &=~μ s UCSWRST;//从复位状态释放 SPI 模块
}
谢谢你
Athulya