fixing IIC

This commit is contained in:
2025-08-15 18:51:56 +08:00
parent dd7549d62b
commit 8adabcd08d
4 changed files with 154 additions and 70 deletions

View File

@@ -81,10 +81,58 @@ int main(void)
i2c_bus_reset();
#endif
i2c_scan();
ldc1612_iic_get_sensor_infomation();
// i2c_scan();
uint8_t ldc_data[2] = {0};
i2c_result_t i2c_result = i2c_read_16bits(LDC1612_ADDR, READ_MANUFACTURER_ID, ldc_data);
// const char* i2c_string = i2c_get_status_string(i2c_result);
// const char* msg1 = "I2C Status: ";
// for (uint8_t i = 0; msg1[i] != '\0'; i++) {
// while (usart_flag_get(RS485_PHY, USART_FLAG_TBE) == RESET) {}
// usart_data_transmit(RS485_PHY, msg1[i]);
// }
// // 发送i2c_string内容
// for (uint8_t i = 0; i2c_string[i] != '\0'; i++) {
// while (usart_flag_get(RS485_PHY, USART_FLAG_TBE) == RESET) {}
// usart_data_transmit(RS485_PHY, i2c_string[i]);
// }
// // 发送换行符
// const char* newline1 = "\r\n";
// for (uint8_t i = 0; newline1[i] != '\0'; i++) {
// while (usart_flag_get(RS485_PHY, USART_FLAG_TBE) == RESET) {}
// usart_data_transmit(RS485_PHY, newline1[i]);
// }
// 第二句:发送 "LDC1612 Manufacturer ID: 0x" + 十六进制数值 + "\r\n"
const char* msg2 = "LDC1612 Manufacturer ID: 0x";
for (uint8_t i = 0; msg2[i] != '\0'; i++) {
while (usart_flag_get(RS485_PHY, USART_FLAG_TBE) == RESET) {}
usart_data_transmit(RS485_PHY, msg2[i]);
}
// 发送十六进制数值
uint16_t manufacturer_id = (ldc_data[0] << 8) | ldc_data[1];
uint8_t hex_chars[] = "0123456789ABCDEF";
for (int8_t i = 3; i >= 0; i--) {
uint8_t nibble = (manufacturer_id >> (i * 4)) & 0x0F;
while (usart_flag_get(RS485_PHY, USART_FLAG_TBE) == RESET) {}
usart_data_transmit(RS485_PHY, hex_chars[nibble]);
}
// 发送换行符
const char* newline2 = "\r\n";
for (uint8_t i = 0; newline2[i] != '\0'; i++) {
while (usart_flag_get(RS485_PHY, USART_FLAG_TBE) == RESET) {}
usart_data_transmit(RS485_PHY, newline2[i]);
}
// 等待所有数据发送完成
while (usart_flag_get(RS485_PHY, USART_FLAG_TC) == RESET) {}
while(1){
command_process();