亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > arduino花式點(diǎn)燈續(xù)

arduino花式點(diǎn)燈續(xù) 時(shí)間:2018-09-26      來(lái)源:未知

之前我們使用Arduino 實(shí)現(xiàn)了點(diǎn)燈,閃爍燈,串口點(diǎn)燈以及與上位機(jī)結(jié)合的點(diǎn)燈。這一次我們將實(shí)現(xiàn)一個(gè)UDP服務(wù)器接受命令實(shí)現(xiàn)點(diǎn)燈,以及使用Intel Edison開(kāi)發(fā)板實(shí)現(xiàn)點(diǎn)燈。

一、UDP實(shí)現(xiàn)點(diǎn)燈

UDP服務(wù)器是一種網(wǎng)絡(luò)通信采取的正常方式。使用udp協(xié)議實(shí)現(xiàn)快速的網(wǎng)絡(luò)通信。在服務(wù)器端只需要 三個(gè)函數(shù)便可部署。

udp_socket = socket(AF_INET, SOCK_DGRAM, 0);

這個(gè)函數(shù)第一個(gè)參數(shù)是代表ipv4的作用域的宏,第二個(gè)參數(shù)是數(shù)據(jù)報(bào)的類型,udp使用的用戶數(shù)據(jù)報(bào)格式。函數(shù)返回值是指文件描述符,使用它作進(jìn)一步操作。

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

bind函數(shù)是將套接字與本地地址信息進(jìn)行綁定。

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這個(gè)結(jié)構(gòu)體需要填入ipv4的作用域,以及本機(jī)地址和本地端口。

再使用recfrom函數(shù)便可接受信息

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

結(jié)合之前的串口函數(shù),可以實(shí)現(xiàn)接受數(shù)據(jù)報(bào)打開(kāi)串口給下位機(jī)Arduino發(fā)送信息:

代碼:

#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實(shí)現(xiàn)點(diǎn)燈

 

 

Edison是Intel推出的一款智能開(kāi)發(fā)平臺(tái),兼容Arduino,同時(shí)也是一款高性能的x86低功耗開(kāi)發(fā)板。

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

一旦成功連接,Edison正常啟動(dòng),在windows中會(huì)出現(xiàn)一個(gè)盤符。

 

 

陸續(xù)安裝完Arduino的幾個(gè)開(kāi)發(fā)包。

 

 

使用之前的Arduino代碼燒錄到開(kāi)發(fā)板中,方法參照Arduino的使用;

 

 

如此便實(shí)現(xiàn)了Intel Edison的Arduino點(diǎn)燈程序。

上一篇:C語(yǔ)言預(yù)處理命令解析

下一篇:scanf函數(shù)簡(jiǎn)單問(wèn)題討論

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見(jiàn)科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5京公海網(wǎng)安備11010802025203號(hào)

回到頂部

主站蜘蛛池模板: 麻豆果冻传媒新剧国产短视频 | 国产剧情精品在线 | 免费h视频在线观看 | 免费网站黄色 | 图片亚洲va欧美va国产综合 | 国产精品欧美亚洲日本综合 | 久久久久这里只有精品 | 麻豆视频免费播放 | 香港午夜三级a三级高清观看 | 亚洲国产日韩a在线播放 | 日本成日本片人免费 | 九九热在线免费视频 | 久久午夜一区二区 | 精品在线一区二区 | 亚洲视频日韩视频 | 免费的特黄特色大片在线观看 | 激情啪啪精品一区二区 | 日本欧美大码aⅴ在线播放 日本欧美高清视频 | 久久99蜜桃精品久久久久小说 | 免费观看视频高清在线 | 黄色爱爱网站 | 久久久久这里只有精品 | 六月婷婷综合激情 | 国产综合自拍 | 欧洲一级黄色 | 欧美又大粗又爽又黄大片视频 | 欧美精品片在线观看网站 | 午夜色a大片在线观看免费 午夜色福利 | 国内精品福利在线视频 | 国产探花视频在线观看 | 青草青视频在线观看 | 久久有这有精品在线观看 | 性生潮久久久不久久久久 | 夜夜天天操 | 2021国产精品自拍 | 欧美成人午夜片一一在线观看 | 国产日本韩国不卡在线视频 | 一级毛片全部免费播放 | 啪啪亚洲 | 精品福利一区二区三区 | 97人人揉人人捏人人添 |