This commit is contained in:
yelvlab 2024-12-28 18:40:46 +08:00
parent 7d6be9f390
commit 9b9f14f97a
3 changed files with 21 additions and 15 deletions

View File

@ -22,16 +22,22 @@
/******************************************************************************/
void i2c_delay(void);
void soft_i2c_delay(void);
void soft_i2c_config(void);
void soft_i2c_start(void);
void soft_i2c_stop(void);
void soft_i2c_send_ack(void);
void soft_i2c_send_nack(void);
uint8_t soft_i2c_wait_ack(void);
void soft_i2c_send_byte(uint8_t data);
uint8_t soft_i2c_receive_byte(uint8_t ack);
#endif //SOFT_I2C_H

View File

@ -79,36 +79,36 @@ int main(void) {
soft_i2c_config();
printf("111\n");
i2c_start();
i2c_send_byte((0x2B << 1));
if (!i2c_wait_ack())
soft_i2c_start();
soft_i2c_send_byte((0x2B << 1));
if (!soft_i2c_wait_ack())
{
printf("NACK\n");
}
i2c_send_byte(0x7E);
if (!i2c_wait_ack())
soft_i2c_send_byte(0x7E);
if (!soft_i2c_wait_ack())
{
printf("NACK\n");
}
i2c_delay();
i2c_start();
soft_i2c_delay();
soft_i2c_start();
i2c_send_byte((0x2B << 1) + 1);
if (!i2c_wait_ack())
soft_i2c_send_byte((0x2B << 1) + 1);
if (!soft_i2c_wait_ack())
{
printf("NACK\n");
}
i2c_delay();
soft_i2c_delay();
data[0] = i2c_receive_byte(1);
data[1] = i2c_receive_byte(0);
data[0] = soft_i2c_receive_byte(1);
data[1] = soft_i2c_receive_byte(0);
delay_us(5);
i2c_stop();
soft_i2c_stop();
printf("0x%x 0x%x\n", data[0], data[1]);

View File

@ -10,7 +10,7 @@
\param[out] none
\retval none
*/
void i2c_delay(void) {
void soft_i2c_delay(void) {
delay_us(20); // Adjust delay as needed
/* delay to freq
* 20KHz: delay_us(20);