English | 简体中文 | 繁體中文 | 日本語 | Deutsch | 한국어
Der PCF8591 ist ein Single-Chip-Single-Supply-Low-Power-8-Bit-CMOS-Datenerfassungsgerät mit vier analogen Eingängen, einem analogen Ausgang und einer seriellen I2C-Bus-Schnittstelle.Drei Adress-Pins A0, A1 und A2 werden zur Programmierung verwendet Hardware-Adresse, die den Einsatz von bis zu acht an den I2C-Bus angeschlossenen Geräten ohne zusätzliche Hardware ermöglicht.Adresse, Steuerung und Daten zum und vom Gerät werden seriell über den zweiadrigen, bidirektionalen I2C-Bus übertragen.Zu den Funktionen des Geräts gehören: analoges Eingangs-Multiplexing, On-Chip-Track-and-Hold-Funktion, 8-Bit-Analog-Digital-Wandlung und eine 8-Bit-Digital-Analog-Wandlung Die maximale Wandlungsrate ist durch die maximale Geschwindigkeit des I2C-Busses gegeben.PCF8591 wird in Closed-Loop-Steuerungssystemen, Low-Power-Konvertern für die Ferndatenerfassung, batteriebetriebenen Geräten und analogen Erfassungen in Automobil-Audio-TV-Anwendungen verwendet.
LibDriver PCF8591 ist ein voll funktionsfähiger Treiber von PCF8591, der von LibDriver gestartet wurde. Er bietet AD-Lesen, DA-Ausgabe, kontinuierliches AD-Lesen und andere Funktionen. LibDriver entspricht MISRA.
/src enthält LibDriver PCF8591-Quelldateien.
/interface enthält die plattformunabhängige Vorlage LibDriver PCF8591 IIC.
/test enthält den Testcode des LibDriver PCF8591-Treibers und dieser Code kann die erforderliche Funktion des Chips einfach testen.
/example enthält LibDriver PCF8591-Beispielcode.
/doc enthält das LibDriver PCF8591-Offlinedokument.
/Datenblatt enthält PCF8591-Datenblatt.
/project enthält den allgemeinen Beispielcode für Linux- und MCU-Entwicklungsboards. Alle Projekte verwenden das Shell-Skript, um den Treiber zu debuggen, und die detaillierten Anweisungen finden Sie in der README.md jedes Projekts.
Verweisen Sie auf eine plattformunabhängige IIC-Schnittstellenvorlage und stellen Sie Ihren Plattform-IIC-Treiber fertig.
Fügen Sie /src, /interface und /example zu Ihrem Projekt hinzu.
#include "driver_pcf8591_basic.h"
uint8_t res;
uint8_t i;
int16_t raw;
float adc;
res = pcf8591_basic_init(PCF8591_ADDRESS_A000, PCF8591_MODE_AIN0123_GND);
if (res != 0)
{
pcf8591_interface_debug_print("pcf8591: init failed.\n");
return 1;
}
...
res = pcf8591_basic_write(1.2f);
if (res != 0)
{
pcf8591_interface_debug_print("pcf8591: write failed.\n");
(void)pcf8591_basic_deinit();
return 1;
}
...
res = pcf8591_basic_set_channel(PCF8591_CHANNEL_0);
if (res != 0)
{
pcf8591_interface_debug_print("pcf8591: set channel failed.\n");
(void)pcf8591_basic_deinit();
return 1;
}
...
/* read prev data */
res = pcf8591_basic_read((int16_t *)&raw, (float *)&adc);
if (res != 0)
{
pcf8591_interface_debug_print("pcf8591: read failed.\n");
(void)pcf8591_basic_deinit();
return 1;
}
pcf8591_interface_delay_ms(1000);
for (i = 0; i < 3; i++)
{
/* read data */
res = pcf8591_basic_read((int16_t *)&raw, (float *)&adc);
if (res != 0)
{
pcf8591_interface_debug_print("pcf8591: read failed.\n");
(void)pcf8591_basic_deinit();
return 1;
}
pcf8591_interface_debug_print("pcf8591: adc is %0.3f.\n", adc);
pcf8591_interface_delay_ms(1000);
...
}
...
(void)pcf8591_basic_deinit();
return 0;
#include "driver_pcf8591_increment.h"
uint8_t res;
int16_t raws[4];
float adcs[4];
uint8_t len;
uint8_t i, j;
res = pcf8591_increment_init(PCF8591_ADDRESS_A000, PCF8591_MODE_AIN0123_GND);
if (res != 0)
{
pcf8591_interface_debug_print("pcf8591: init failed.\n");
return 1;
}
...
res = pcf8591_increment_write(1.8f);
if (res != 0)
{
pcf8591_interface_debug_print("pcf8591: write failed.\n");
(void)pcf8591_basic_deinit();
return 1;
}
...
/* read prev data */
len = 4;
res = pcf8591_increment_read((int16_t *)raws, (float *)adcs, (uint8_t *)&len);
if (res != 0)
{
pcf8591_interface_debug_print("pcf8591: increment read failed.\n");
(void)pcf8591_increment_deinit();
return 1;
}
pcf8591_interface_delay_ms(1000);
for (i = 0; i < 3; i++)
{
/* read data */
len = 4;
res = pcf8591_increment_read((int16_t *)raws, (float *)adcs, (uint8_t *)&len);
if (res != 0)
{
pcf8591_interface_debug_print("pcf8591: read failed.\n");
(void)pcf8591_increment_deinit();
return 1;
}
for (j = 0; j < len; j++)
{
pcf8591_interface_debug_print("pcf8591: raw is %d.\n", raws[j]);
pcf8591_interface_debug_print("pcf8591: adc is %0.3f.\n", adcs[j]);
...
}
pcf8591_interface_delay_ms(1000);
...
}
...
(void)pcf8591_increment_deinit();
return 0;
Online-Dokumente: https://www.libdriver.com/docs/pcf8591/index.html
Offline-Dokumente: /doc/html/index.html
Bitte senden Sie eine E-Mail an lishifenging@outlook.com
Urheberrechte © (c) 2015 - Gegenwart LibDriver Alle Rechte vorbehalten
Die MIT-Lizenz (MIT)
Hiermit wird jeder Person kostenlos die Erlaubnis erteilt, eine Kopie zu erhalten
dieser Software und zugehörigen Dokumentationsdateien (die „Software“) zu behandeln
in der Software ohne Einschränkung, einschließlich, aber nicht beschränkt auf die Rechte
zu verwenden, zu kopieren, zu modifizieren, zusammenzuführen, zu veröffentlichen, zu verteilen, unterzulizenzieren und/oder zu verkaufen
Kopien der Software und Personen, denen die Software gehört, zu gestatten
dazu eingerichtet werden, unter folgenden Bedingungen:
Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen enthalten sein
Kopien oder wesentliche Teile der Software.
DIE SOFTWARE WIRD "WIE BESEHEN" BEREITGESTELLT, OHNE JEGLICHE GEWÄHRLEISTUNG, AUSDRÜCKLICH ODER
STILLSCHWEIGEND, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT,
EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG VON RECHTEN DRITTER. IN KEINEM FALL DARF DAS
AUTOREN ODER URHEBERRECHTSINHABER HAFTEN FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE
HAFTUNG, OB AUS VERTRAG, DELIKT ODER ANDERWEITIG, ENTSTEHEND AUS,
AUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER VERWENDUNG ODER ANDEREN HANDLUNGEN MIT DER
SOFTWARE.
Bitte senden Sie eine E-Mail an lishifenging@outlook.com