cpa推广做网站,WordPress搭建在线电影,招聘广告设计,搜索引擎营销方式也是通过树莓派IO口的控制来实现继电器组的开发 继电器组有四根信号线#xff0c;2根电源线。
通过gpio readall 查看树莓派各个端口的信息选择26 27 28 29 作为信号端口 编程可能会遇到的一些问题
1、通过键盘输入指令的时候#xff0c;如果用scanf 会有bug#xff0c;导… 也是通过树莓派IO口的控制来实现继电器组的开发 继电器组有四根信号线2根电源线。
通过gpio readall 查看树莓派各个端口的信息选择26 27 28 29 作为信号端口 编程可能会遇到的一些问题
1、通过键盘输入指令的时候如果用scanf 会有bug导致运行错误。这里用的是gets(cmd).
2、每次输入指令前应该把上一次指令清除。这里采用的是memset void *memset(void *s, int c, size_t n); s指向要填充的内存块。c是要被设置的值。n是要被设置该值的字符数。返回类型是一个指向存储区s的指针。 3、对指令的判端运用的是 strcmp int strcmp(const char* str1, const char *str2); ;strcmp比较两个字符串的大小一个字符一个字符比较按ASCLL码比较 标准规定 第一个字符串大于第二个字符串则返回大于0的数字 第一个字符串等于第二个字符串则返回0 第一个字符串小于第二个字符串则返回小于0的数字 #include wiringPi.h
#include stdio.h
#include unistd.h
#include string.h
#define SWI1 26
#define SWI2 27
#define SWI3 28
#define SWI4 29
int main()
{//1.初始化硬件部分if(wiringPiSetup () -1){printf(初始化错误);}char cmd[12] {\0};//2.设置端口pinMode(SWI1,OUTPUT);pinMode(SWI2,OUTPUT);pinMode(SWI3,OUTPUT);pinMode(SWI4,OUTPUT);//3.设置初始状态digitalWrite(SWI1,HIGH);digitalWrite(SWI2,HIGH);digitalWrite(SWI3,HIGH);digitalWrite(SWI4,HIGH);while(1){printf(请输入指令:1/2/3/4 on 1/2/3/4 off\n);memset(cmd,\0,sizeof(cmd));gets(cmd);//控制SWI 1if( strcmp(cmd,1 on) 0){digitalWrite(SWI1,LOW);}if(strcmp(cmd,1 off) 0){digitalWrite(SWI1,HIGH);}//控制2if( strcmp(cmd,2 on) 0){digitalWrite(SWI2,LOW);}if(strcmp(cmd,2 off) 0){digitalWrite(SWI2,HIGH);}//控制3if( strcmp(cmd,3 on) 0){digitalWrite(SWI3,LOW);}if(strcmp(cmd,3 off) 0){digitalWrite(SWI3,HIGH);}// 控制4if( strcmp(cmd,4 on) 0){digitalWrite(SWI4,LOW);}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);}if( strcmp(cmd,all off) 0){digitalWrite(SWI1,HIGH);digitalWrite(SWI2,HIGH);digitalWrite(SWI3,HIGH);digitalWrite(SWI4,HIGH);}else{printf(输入错误\n);}}}