WiringPi库(Linux动态库:.so 静态库:.a)
API printf(c标准库)
树莓派wiringPi库详解
树莓派的接口: 驱动
IO口:input output 对主控来说
Input:人体,烟雾,火焰,震动等
Output:继电器,蜂鸣器
PWM:电机调速,灯光调明亮度
语音识别模块,液晶屏
串口uart
IIC
SPI
IIS
其他特定硬件的接口:flash
Nanopi:Linux
S3c2410,2440 6410
Tiny210 tiny4412
海思方案,瑞芯微方案,移远方案
C51,stm32,arduino,wemosD1:没有操作系统(Linux)
全双工:两个人可以同时交流,串口通信属于全双工
半双工:俩人交流,同一时间只有一人说话
如何查看树莓派的针脚
gpio readall
GPIO 的针脚都可以插
树莓派控制单个继电器
#include <stdio.h>
#include <wiringPi.h>
#define SWITCHER 7
int main()
{
int cmd;
if(wiringPiSetup() == -1){
printf("硬件接口初始化失败\n");
return -1;
}
pinMode(SWITCHER, OUTPUT);
digitalWrite(SWITCHER, HIGH);
while(1){
printf("请输入0/1: 0-断开开关, 1-导通开关\n");
scanf("%d", &cmd);
if(cmd == 1){
digitalWrite(SWITCHER, LOW);
}else if(cmd == 0){
digitalWrite(SWITCHER, HIGH);
}else{
printf("输入错误\n");
}
}
return 0;
}
树莓派控制继电器组
#include <stdio.h>
#include <wiringPi.h>
#include <string.h>
#define SWI1 26
#define SWI2 27
#define SWI3 28
#define SWI4 29
int main()
{
char cmd[12] = {'\0'};
if(wiringPiSetup() == -1){
printf("硬件接口初始化失败\n");
return -1;
}
pinMode(SWI1, OUTPUT);
pinMode(SWI2, OUTPUT);
pinMode(SWI3, OUTPUT);
pinMode(SWI4, OUTPUT);
digitalWrite(SWI1, HIGH);
digitalWrite(SWI2, HIGH);
digitalWrite(SWI3, HIGH);
digitalWrite(SWI4, HIGH);
while(1){
memset(cmd, '\0', sizeof(cmd));
printf("请输入1/2/3/4 on/off,数字是开关序号,on---开启,off---关闭\n");
// scanf("%s", cmd);
gets(cmd);
if(strcmp(cmd, "1 on") == 0){
digitalWrite(SWI1, LOW);
}else if(strcmp(cmd, "1 off") == 0){
digitalWrite(SWI1, HIGH);
}
if(strcmp(cmd, "2 on") == 0){
digitalWrite(SWI2, LOW);
}else if(strcmp(cmd, "2 off") == 0){
digitalWrite(SWI2, HIGH);
}
if(strcmp(cmd, "3 on") == 0){
digitalWrite(SWI3, LOW);
}else if(strcmp(cmd, "3 off") == 0){
digitalWrite(SWI3, HIGH);
}
if(strcmp(cmd, "4 on") == 0){
digitalWrite(SWI4, LOW);
}else if(strcmp(cmd, "4 off") == 0){
digitalWrite(SWI4, HIGH);
}
if(strcmp(cmd,"all on")==0)
{
digitalWrite(SWI1,LOW);
digitalWrite(SWI2,LOW);
digitalWrite(SWI3,LOW);
digitalWrite(SWI4,LOW);
}
else if(strcmp(cmd,"all off")==0)
{
digitalWrite(SWI1,HIGH);
digitalWrite(SWI2,HIGH);
digitalWrite(SWI3,HIGH);
digitalWrite(SWI4,HIGH);
}
else{
printf("输入错误\n");
}
}
return 0;
}
就这样吧,上述代码都很简单,没什么好解释的。