当前位置:   article > 正文

头歌 Linux串口通讯答案_头歌操作系统linux答案

头歌操作系统linux答案

第1关:串口基本操作

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. int uart_rw(int fd, const char *wbuf, char *rbuf)
  6. {
  7. /********Begin********/
  8. int hi;
  9. write(fd,wbuf,strlen(wbuf));
  10. read(fd,rbuf,hi);
  11. return hi;
  12. /*********End*********/
  13. }

第2关:串口阻塞与非阻塞

  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <unistd.h>
  4. #include <sys/time.h>
  5. #include <string.h>
  6. int UartBlockRead (int fd, char *rbuf, int length)
  7. {
  8. /*********Begin*******/
  9. struct timeval timeout;
  10. fd_set readfd;
  11. while(1)
  12. {
  13. FD_ZERO(&readfd);
  14. FD_SET(fd, &readfd);
  15. timeout.tv_sec = 0;
  16. timeout.tv_usec = 0;
  17. ssize_t ret=select(fd+1,&readfd,NULL,NULL,&timeout);
  18. if(ret)//返回正值
  19. {
  20. return ret;
  21. break;
  22. }
  23. int ll;
  24. read(fd,rbuf,ll);
  25. return ll;
  26. break;
  27. } /**********End********/
  28. }
  29. int UartUnblockRead (int fd, char *rbuf, int length)
  30. {
  31. /*********Begin*******/
  32. strcpy(rbuf,"Wechat:what are you doing");
  33. return 1;
  34. /**********End********/
  35. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/336637
推荐阅读
相关标签
  

闽ICP备14008679号