zoukankan      html  css  js  c++  java
  • Raspberry Pi3 ~ C语言控制串口

      注明出处:http://www.cnblogs.com/einstein-2014731/p/5551846.html

      使用C语言控制树莓派3B的串口,实现使用串口收发数据的目的。之前以为这个串口是被默认配制成serial控制树莓派的模式,

    其实安装最新的NOOBS后是默认的serial0,而我们用的是ttyAMA0,还有的说这个和Pi3的板载蓝牙冲突,两者不能同时使用,

    对此目前还没试过两者全开的情况。如果两者不能同时使用岂不是很坑爹。

    【1】 首先查看 /boot/overlays/ 目录下有没有 pi3-miniuart-bt-overlay.dtb 这个

             文件,如果有,那么就是已经把硬件串口重新分配给了GPIO。

    然后查看下 /boot/cmdline.txt这个文件,我的内容如下:           


    otg.lpm_enable=0 console=serial0,115200     console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline     fsck.repair=yes rootwait

    可以看到console=serial0 用的是serial0 控制模式并非ttyAMA0。这里也不要改

    【2】安装wiringPi ,前面已经提到过,安装之后查看GPIO的引脚分配。引脚图如下:

    【3】按照图连线,TxD也就是8脚接在MAX232的RX上RxD接在TX上,将TTL电平转成RS232电平使电脑可以识别。

    【4】eclipse中编写代码

    #include <wiringSerial.h>
    int main(void)
    {
        int fd;
        if((fd = serialOpen ("/dev/ttyAMA0",9600))<0)
        {
            printf("serial err
    ");
        }
        while(1)
        {
            UartBuff[0]=serialGetchar(fd);
            if(UartBuff[0]=='a')
            {
             serialPutchar(fd,UartBuff[0]);
            }
            sleep(0.5);
        }
        return EXIT_SUCCESS;

    首先从串口接收数据,然后如果接收的是字符a,那么在把接收到的a发回去。

    WiringPi关于串口函数如下,可以按照需求使用。

    extern int   serialOpen      (const char *device, const int baud) ;
    extern void  serialClose     (const int fd) ;
    extern void  serialFlush     (const int fd) ;
    extern void  serialPutchar   (const int fd, const unsigned char c) ;
    extern void  serialPuts      (const int fd, const char *s) ;
    extern void  serialPrintf    (const int fd, const char *message, ...) ;
    extern int   serialDataAvail (const int fd) ;
    extern int   serialGetchar   (const int fd) ;
  • 相关阅读:
    leetcode 268. Missing Number
    DBSCAN
    python二维数组初始化
    leetcode 661. Image Smoother
    leetcode 599. Minimum Index Sum of Two Lists
    Python中的sort() key含义
    leetcode 447. Number of Boomerangs
    leetcode 697. Degree of an Array
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(1月3日)
    北京Uber优步司机奖励政策(1月2日)
  • 原文地址:https://www.cnblogs.com/einstein-2014731/p/5551846.html
Copyright © 2011-2022 走看看