นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน

ServiceMan
Ico64
Sathaya Bunratchoo
Engineer
Scientific Equipment Center, PSU
Network
Members · Following: 3 · Followed: 2

อ่าน: 1169
ความเห็น: 0

Raspberry pi serial port with Wiringpi

การเขียนโปรแกรมติดต่อ serial port ด้วย library Wiringpi

   RaspberryPi เป็น embedded board ที่น่าสนใจและราคาไม่แพงตอนนี้ก็ได้มีการพัฒนาไปถึง model 3 แล้ว การพัฒนาโปรแกรม embedded ที่ใช้กันบ่อยก็จะมีในส่วนของการติดต่อกับ Serial port โดยปกติใน Example ของ Wiringpi จะมีตัวอย่างมาให้ และสามารถใช้งานได้ดีกับ onboard serial port แต่จากที่ได้ทดสอบพบว่าเมื่อใช้ร่วมกับ USB to serial จะไม่สามารถใช้งานได้

   วันนี้ขอบันทึกไว้กันลืมกับตัวอย่าง code อีกตัวที่สามารถใช้งานได้ดี ทั้ง onboard serial port และ USB to serial

 

อ้างอิง

https://github.com/WiringPi/WiringPi/blob/master/examples/serialTest.c

https://github.com/WiringPi/WiringPi/blob/master/wiringPi/wiringSerial.c

 

/*
 * serialTest.c:
 *    Very simple program to test the serial port. Expects
 *    the port to be looped back to itself
 *
 * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
 ***********************************************************************
 * This file is part of wiringPi:
 *    https://projects.drogon.net/raspberry-pi/wiringpi/
 *
 *    wiringPi is free software: you can redistribute it and/or modify
 *    it under the terms of the GNU Lesser General Public License as published by
 *    the Free Software Foundation, either version 3 of the License, or
 *    (at your option) any later version.
 *
 *    wiringPi is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU Lesser General Public License for more details.
 *
 *    You should have received a copy of the GNU Lesser General Public License
 *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
 ***********************************************************************
 */

#include <stdio.h>
#include <string.h>
#include <errno.h>

#include <wiringPi.h>
#include <wiringSerial.h>

int main ()
{
  int fd ;
  int count ;
  unsigned int nextTime ;

  if ((fd = serialOpen ("/dev/ttyAMA0", 115200)) < 0)
  {
    fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ;
    return 1 ;
  }

  if (wiringPiSetup () == -1)
  {
    fprintf (stdout, "Unable to start wiringPi: %s\n", strerror (errno)) ;
    return 1 ;
  }

  nextTime = millis () + 300 ;

  for (count = 0 ; count < 256 ; )
  {
    if (millis () > nextTime)
    {
      printf ("\nOut: %3d: ", count) ;
      fflush (stdout) ;
      serialPutchar (fd, count) ;
      nextTime += 300 ;
      ++count ;
    }

    delay (3) ;

    while (serialDataAvail (fd))
    {
      printf (" -> %3d", serialGetchar (fd)) ;
      fflush (stdout) ;
    }
  }

  printf ("\n") ;
  return 0 ;
}

 

 

Sections: พัฒนางานประจำ
License: ซีซี: แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกัน Cc-by-nc-sa
created: 05 May 2016 09:50 Modified: 05 May 2016 09:50 [ Report Abuse ]
ดอกไม้
People who like this: Ico24 ดำขำ.
People Who Like This
 
Facebook
Twitter
Google

Other Posts By This Blogger

ความเห็น

ไม่มีความเห็น

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 3.237.71.23
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ