日韩在线免费播放-日韩在线免费av-日韩在线免费-日韩在线毛片-国产高清不卡视频-国产高清不卡

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > arduino花式點燈續

arduino花式點燈續 時間:2018-09-26      來源:未知

之前我們使用Arduino 實現了點燈,閃爍燈,串口點燈以及與上位機結合的點燈。這一次我們將實現一個UDP服務器接受命令實現點燈,以及使用Intel Edison開發板實現點燈。

一、UDP實現點燈

UDP服務器是一種網絡通信采取的正常方式。使用udp協議實現快速的網絡通信。在服務器端只需要 三個函數便可部署。

udp_socket = socket(AF_INET, SOCK_DGRAM, 0);

這個函數第一個參數是代表ipv4的作用域的宏,第二個參數是數據報的類型,udp使用的用戶數據報格式。函數返回值是指文件描述符,使用它作進一步操作。

int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

bind函數是將套接字與本地地址信息進行綁定。

struct sockaddr_in seraddr;

seraddr.sin_family=AF_INET;

seraddr.sin_port=htons(50000);

seraddr.sin_addr.s_addr=inet_addr("0.0.0.0");

Seraddr這個結構體需要填入ipv4的作用域,以及本機地址和本地端口。

再使用recfrom函數便可接受信息

recvfrom(fd,buf,sizeof(buf),0,NULL,NULL);

結合之前的串口函數,可以實現接受數據報打開串口給下位機Arduino發送信息:

代碼:

#include #include

/* See NOTES */#include

#include

#include

#include //#include //#include

#include

#include

#include

#include

#include

#include

int serialfd;int uart_device_open(){

struct termios options;

if((serialfd=open("/dev/ttyUSB0",O_RDWR|O_NOCTTY|O_NDELAY))<0)

{

perror("open failed");

return -1;

}

tcgetattr(serialfd, &options);

options.c_cflag |= (CLOCAL | CREAD);

options.c_cflag &= ~CSIZE;

options.c_cflag &= ~CRTSCTS;

options.c_cflag |= CS8;

options.c_cflag &= ~CSTOPB;

options.c_iflag |= IGNPAR;

options.c_iflag &= ~(BRKINT | INPCK | ISTRIP | ICRNL | IXON);

options.c_cc[VMIN] = 12;

options.c_oflag = 0;

options.c_lflag = 0;

cfsetispeed(&options, B9600);

cfsetospeed(&options, B9600);

tcsetattr(serialfd,TCSANOW,&options);

printf("zigbee serial ok!\n");

return 0;

}

int main(int argc, const char *argv[]){

int fd;

fd=socket(AF_INET,SOCK_DGRAM,0);

if(fd<0)

{

printf("fd error\n");

return -1;

}

//socket

struct sockaddr_in seraddr;

seraddr.sin_family=AF_INET;

seraddr.sin_port=htons(50000);

seraddr.sin_addr.s_addr=inet_addr("0.0.0.0");

// host to network small htons

//bind 2 sockaddr <-- sockaddr_in

int ret_bind;

ret_bind=bind(fd,(struct sockaddr*)&seraddr,sizeof(seraddr));

if(ret_bind<0)

{

printf("fail to bind\n");

return -1;

}

//recvfrom

char buf[128];

uart_device_open();

while(1)

{

bzero(buf,sizeof(buf));

recvfrom(fd,buf,sizeof(buf),0,NULL,NULL);

printf("Buf:%s\n",buf);

if(buf[0]=='1'||buf[0]=='b'||buf[0]=='0')

{

write(serialfd, buf, 1);

printf("success to send %c\n",buf[0]);

}

}

close(fd);

return 0;

}

二、Intel Edison實現點燈

 

 

Edison是Intel推出的一款智能開發平臺,兼容Arduino,同時也是一款高性能的x86低功耗開發板。

首先我們先配置一下Intel Edison:

一旦成功連接,Edison正常啟動,在windows中會出現一個盤符。

 

 

陸續安裝完Arduino的幾個開發包。

 

 

使用之前的Arduino代碼燒錄到開發板中,方法參照Arduino的使用;

 

 

如此便實現了Intel Edison的Arduino點燈程序。

上一篇:C語言預處理命令解析

下一篇:scanf函數簡單問題討論

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 搜狐手机首页| 林仔仔| 寻宝电影| 窗前| 87版七仙女台湾| 礼运节选高中原文| 日本尻逼| 公务员体检甲状腺一共查几项| 新三国第95集完整版| 姐妹们| 乙亥北行日记| dj音乐劲爆dj| 适合小情侣晚上看的电影| 秀人网小逗逗集免费观看| 黑帆第三季电视剧完整免费观看高清| 髋关节置换术后护理ppt | 梦想建筑师泰国百合剧| 流行性感冒ppt课件| 你从草原走来| 在爱的名义下| 林采薇| 舞法天女绚彩归来| 没有下巴| 捉弄电影| 阿尔法变频器说明书| paigeturnah大白臀| 张柏芝艳照无删减版| 绫濑| 后位子宫怎么样容易怀孕| 美姐妹| 永远的牧歌简谱| 日本女人性生活视频| 性感直播| 韩国我的养父电影免费观看| 三上悠亚在线免费观看| k总直播间| 日本午夜电影| 汤唯和梁朝伟拍戏原版视频| juliaann女医生在办公室| 不可饶恕 电影| 七龙珠2|