justlovecoding 0 Posted July 3, 2021 (edited) Hello, As the ASUS Tinker Board has so many wonderful features and direct access of lower level peripherals, I've decided to migrate my development from raspberry Pi to Tinker board. Right now, I'm starting with a basic UART code which sends and receive some strings serially but unfortunately it is not working as expected. The UART I'm trying to use UART1 (Pin number 8 and 10). Right now, if (serialDataAvail(fd)) is getting true every single time. After reading the data serialGetchar(fd), I found out that, the RX pin is in low state (receiving 255 continuously). Although, my code has no error, but I'll still add it here. #include <stdio.h> #include <string.h> #include <errno.h> #include <wiringPi.h> #include <wiringSerial.h> int main () { int fd,inCount = 0 ; char inBuff[500],OutBuff[500]; if (wiringPiSetup () == -1) { fprintf (stdout, "Unable to start wiringPi: %s\n", strerror (errno)) ; return 1 ; } else printf("wiringPi: init successfull! \n\r"); if((fd = serialOpen ("/dev/ttyS0", 115200)) < 0) { fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ; return 1 ; } else printf("Serila: /dev/ttyS0 successfully opened! \n\r"); while (1) { if (serialDataAvail(fd)) { inBuff[inCount] = serialGetchar(fd); if ( inBuff[inCount] == '\n') { printf("RX String=%s"); memset(inBuff,'\0',inCount); inCount = 0 ; } inCount++; if ( inCount == 500) { inCount = 0; memset(inBuff,'\0',inCount); } } } } The reply of "dmesg | grep tty" is attached below. Edited July 3, 2021 by justlovecoding Share this post Link to post Share on other sites
Joe 3 Posted August 10, 2021 Hi justlovecoding: Pin number 8 and 10 is UART1 Can you try as follows?? if((fd = serialOpen ("/dev/ttyS1", 115200)) < 0) Thanks Share this post Link to post Share on other sites