Kendryte K210 utilise GPIO pour simuler les formes d'onde i2c

L'i2c fourni avec le K210 présente un inconvénient. Lorsque vous lisez les données, s'il n'y a pas de communication en raison du problème d'adresse, il n'y a aucun moyen de tester si l'appareil répond via l'oscilloscope. Il ne sera envoyé qu'une seule fois si il ne répond pas. Le programme sera bloqué, donc parfois vous devez encore utiliser l'i2c simulé pour tester, mais l'i2c simulé a aussi l'inconvénient que la vitesse est relativement lente, s'il y a relativement peu de registres, c'est bien, mais s'il y en a plus, ce n'est pas exclu, il y a un risque d'erreur.

Triez le code pertinent, comme suit, voici un dispositif aléatoire pour que cet exemple de code, similaire à la petite différence, puisse être modifié en fonction des besoins, le code n'est pas assez concis, veuillez me pardonner:

#ifndef _I2C_GM7122_H
#define _I2C_GM7122_H

#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <FreeRTOS.h>
#include <task.h>

#define GM7122_SLAVE_ADDRESS   0x44


void GM7122_i2c_master_init(void);
uint8_t GM7122_i2c_write_reg(uint8_t reg, uint8_t *data_buf, size_t length);
uint8_t GM7122_i2c_read_reg(uint8_t reg, uint8_t *data_buf, size_t length);
uint8_t GM7122_init(void);
#endif
#include <devices.h>
#include <sys/unistd.h>
#include "i2c_GM7122.h"

#define DELAY_TIME  10
static handle_t piohs;
static ha

Je suppose que tu aimes

Origine blog.csdn.net/smile_5me/article/details/107979483
conseillé
Classement