Programación de comunicación serial de desarrollo Raspberry Pi

1. Configuración:

Es la primera vez que se utiliza el puerto serie de Raspberry Pi para programar y es necesario configurarlo

Modifique el archivo cmdline.txt:

cd /boot/
sudo vi cmdline.txt

Elimina la parte entre 【】:

dwc_otg.lpm_enable=0 【console=ttyAMA0,115200】 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Modifique el archivo inittab:

cd /etc/
sudo vi inittab

Comente el contenido de la última línea: agregue el signo # antes de la línea

#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Reinicie la Raspberry Pi:

sudo reboot

2. Funciones relacionadas:

Incluir archivos de encabezado:

#include <wiringSerial.h>
Prototipo de función parámetro Descripción
int serialOpen (char * dispositivo, int baudios); char * dispositivo: La dirección del puerto serie. En Linux, es el directorio donde se encuentra el dispositivo. El valor predeterminado suele ser "/dev/ttyAMA0";int baud: Tasa de baudios;valor de retorno: Devuelve el descriptor de archivo si tiene éxito, devuelve -1 si falla Abra e inicialice el puerto serie
vacío serialClose (int fd); inf fd: Descriptor de archivo Cierre el puerto serie asociado con fd
void serialPutchar (int fd, unsigned char c); int fd: Descriptor de archivo;carácter sin firmar c: Los datos a enviar Envíe un byte de datos al puerto serie
void serialPuts (int fd, char * s); inf fd: Descriptor de archivo;char * s: Los datos a enviar Envíe una cadena al puerto serie
void serialPrintf (int fd, char * mensaje,…); int fd: Descriptor de archivo;char * mensaje: Cadena formateada Envíe una cadena al puerto serie (similar a printf (); función en la biblioteca estándar del lenguaje C)
int serialDataAvail (int fd); int fd: Descriptor de archivo;valor de retorno: Devuelve el número de bytes en caso de éxito, -1 en caso de error Obtenga el número de bytes disponibles en el búfer de serie
int serialGetchar (int fd); int fd: Descriptor de archivo;valor de retorno: Los datos leídos Leer un byte de datos del puerto serie y devolverlo. Si no hay datos disponibles en el búfer del puerto serie, esperará 10 segundos. Si todavía no hay datos después de 10 segundos, devolverá -1, por lo que Es mejor llamar al serialDataAvail();juicio antes de leer. Tome varios caracteres y use el método de desplazamiento de dirección para leer
vacío serialFlush (int fd); int fd: Descriptor de archivo Borrar los datos en el búfer de serie

Incluir archivos de encabezado:

#include <wiringSerial.h>
#include <unistd.h>
Prototipo de función Descripción
ssize_t read (int fd, void * buf, size_t count); Funciones de biblioteca de E / S estándar en Linux, parafdLeer encontarBytes de datos almacenados enbufen
ssize_t write (int fd, const void * buf, size_t count); Funciones de biblioteca de E / S estándar en Linux, vaya afdEscribir encontarBytes de datos, el contenido esbufAntescontarBytes de datos

Supongo que te gusta

Origin blog.csdn.net/lcx1837/article/details/108167506
Recomendado
Clasificación