GPIO_WriteBit(SCCB_SID_PORT, SCCB_SID_PIN, (((dat<<i)&0x80))>>7); 这句代码发生以下错误warning: #188-D: enumerated type mixed with another type怎么解决
时间: 2024-02-12 18:04:39 浏览: 118
这个错误通常出现在枚举类型和其他类型的混合使用时。你可以尝试将枚举类型转换为相应的整数类型,例如将枚举类型转换为int类型。你可以这样做:
```c
GPIO_WriteBit(SCCB_SID_PORT, SCCB_SID_PIN, (int)(((dat<<i)&0x80))>>7);
```
或者,你也可以尝试修改GPIO_WriteBit函数的参数类型,以便接受枚举类型作为参数。
相关问题
void TLC6983_Write_Reg(uint32_t dat,uint8_t data,uint8_t cmd)//0---写命令 1---读 { uint8_t i; if(cmd) gpio_bit_write(GPIOB, LAT, 0x01); else gpio_bit_write(GPIOB, LAT, 0x00); gpio_bit_write(GPIOB, CLK, 0x00); for(i=0;i<8;i++) { gpio_bit_write(GPIOB, CLK, 0x00); if(dat&0x8000) gpio_bit_write(GPIOB,DATA, 0x01); else gpio_bit_write(GPIOB,DATA, 0x00); gpio_bit_write(GPIOB, CLK, 0x01); dat<<=1; } gpio_bit_write(GPIOB, CLK, 0x01); gpio_bit_write(GPIOB, LAT, 0x01); gpio_bit_write(GPIOB, LAT, 0x00); TLC6983_SendByte((uint8_t)(data > 46)); TLC6983_SendByte((uint8_t)data); gpio_bit_write(GPIOB, LAT, 0x01); }
这段代码是用来控制TLC6983芯片进行数据的读写操作的。根据函数的参数不同,可以实现写命令或读取数据的功能。在函数中,先通过控制GPIO口的电平来模拟SPI通信协议,将数据从单片机发送给TLC6983芯片。同时,也会将读取到的数据发送回单片机。其中,DAT参数代表要写入的数据,data参数代表要读取的数据,cmd参数用于控制读写命令。具体实现过程可以参考函数内部的注释。
阅读全文