donatello1996 发表于 2018-12-16 17:58

【树莓派3B+测评】GCC编译HelloWorld&点灯程序

本帖最后由 donatello1996 于 2018-12-16 18:03 编辑

    树莓派3B+的Raspbian系统自带了GCC编译器,编译程序非常方便,在串口登录或者命令行登录系统之后,直接敲击
gcc

gcc -v
命令即可验证:

使用XSHELL命令行调试助手+SSH登录非常方便哈哈。


我们先来编写一个非常简单的HelloWorld程序:

这里打印两行字符串,注意,在Linux系统中使用printf函数一定要注意,语句末尾必须加\n换行,因为在Linux系统中,在终端使用串口发送指令是以缓存块为单位的,\n是缓存结束的标志,必须加,不加的话会导致诸多BUG。


然后是做文件传输有关的工作,比较常用的方法是直接使用SFTP协议传输,比如使用FileZilla Client软件将刚刚写好的.c文件发送到开发板上:

敲击
gcc main1.c -o 1
指令编译,生成一个名称为1的可执行文件:

敲击
./1
执行:

然后是点灯,还是熟悉的味道,用树莓派点灯还算是简单的,直接用wiringPi软件库即可实现,该软件库是直接操作系统内存的,通过读写内存块来修改BCM芯片的GPIO外设地址内容,进而实现控制GPIO的输出电平,使用wiringPi软件来操作,GPIO引脚翻转速率可达1~2MHz。由于Raspbian系统默认安装了wiringPi软件库,因此我就不介绍安装方法了,直接上指令:
gpio readall
可打印引脚状态:

只需要简单几句,即可实现点灯:

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <wiringPi.h>
#include "raspi_led_pwm.h"
int main()
{
        wiringPiSetup();
        Raspi_LED_Init();
        while(1)
        {
                digitalWrite(LED5V,HIGH);
                sleep(1);
                digitalWrite(LED5V,LOW);
                sleep(1);
        }
}


#define LED5V 0


void Raspi_LED_Init()
{
    pinMode(LED5V,OUTPUT);
    digitalWrite(LED5V,HIGH);
}


注意在编译的时候要加上-lwiringPi:



在GPIO0引脚处连接光耦继电器,继电器另一端连接LED照明灯,即可点灯,非常简单:、

lcofjp 发表于 2018-12-17 09:03

这灯点的太亮了{:1_103:}差点闪瞎我的眼

okhxyyo 发表于 2018-12-17 09:37

有种爆破的感觉

damiaa 发表于 2018-12-20 14:40

{:1_103:}{:1_103:}{:1_103:}
页: [1]
查看完整版本: 【树莓派3B+测评】GCC编译HelloWorld&点灯程序