久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3791|回復: 1
打印 上一主題 下一主題
收起左側(cè)

Arduino軟件模擬RS485通信,雙線,半雙工 源程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:496997 發(fā)表于 2020-10-27 21:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <Arduino.h>

  2. static unsigned char D_0 = 2;
  3. static unsigned char D_1 = 3;


  4. void rs_485_all_pin_high()
  5. {
  6.   digitalWrite(D_0,HIGH);
  7.   digitalWrite(D_1,HIGH);
  8. }

  9. void rs_485_all_pin_low()
  10. {
  11.   digitalWrite(D_0,LOW);
  12.   digitalWrite(D_1,LOW);
  13. }

  14. void rs_485_all_pin_logic_1()
  15. {
  16.   digitalWrite(D_0,LOW);
  17.   digitalWrite(D_1,HIGH);
  18. }

  19. void rs_485_all_pin_logic_0()
  20. {
  21.   digitalWrite(D_0,HIGH);
  22.   digitalWrite(D_1,LOW);
  23. }
  24. unsigned char rs_485_read_pin()
  25. {
  26.   unsigned char temp_rs_485_read_pin_value = digitalRead(D_0);
  27.   
  28.   return ((temp_rs_485_read_pin_value << 1) + digitalRead(D_1));
  29. }
  30. unsigned char rs_485_read_bit()
  31. {
  32.   unsigned char temp_from_485_read_pin_value = rs_485_read_pin();
  33.   
  34.   if(temp_from_485_read_pin_value == 0)// 0-0
  35.   {
  36.     return 2;
  37.   }
  38.   if(temp_from_485_read_pin_value == 1)//0-1
  39.   {
  40.     return 1;
  41.   }
  42.   if(temp_from_485_read_pin_value == 3)//1-1
  43.   {
  44.     return 3;
  45.   }
  46.   if(temp_from_485_read_pin_value == 2)//1-0
  47.   {
  48.     return 0;
  49.   }
  50. }



  51. void rs_485_write(unsigned char rs_485_write_value)
  52. {
  53.   unsigned char i = 0,time_write_delay = 80;
  54.   rs_485_all_pin_high();
  55.   
  56.   delayMicroseconds(time_write_delay);
  57.   
  58.   for(;i < 8; i++)
  59.   {
  60.     unsigned char temp_rs_485_write_value = (rs_485_write_value & 128);
  61.     if(temp_rs_485_write_value)
  62.     {
  63.       rs_485_all_pin_logic_1();
  64.     }
  65.     else if(temp_rs_485_write_value == 0)
  66.     {
  67.       rs_485_all_pin_logic_0();
  68.     }
  69.     rs_485_write_value = rs_485_write_value << 1;
  70.     delayMicroseconds(time_write_delay);
  71.   }
  72.   rs_485_all_pin_low();
  73. }
  74. unsigned char rs_485_read(unsigned int delay_time_485)
  75. {
  76.   unsigned char i=0,temp_read_value = 0;
  77.   
  78.   delayMicroseconds(110);
  79.   
  80.   for(;i<8;i++)
  81.   {
  82.     temp_read_value = ((temp_read_value << 1) + rs_485_read_bit());
  83.     delayMicroseconds(delay_time_485);
  84.   }
  85.   return temp_read_value;
  86. }

  87. unsigned char rs_485_test()
  88. {
  89.   if(rs_485_read_pin() == 0)
  90.   {
  91.     return 1;
  92.   }
  93.   else
  94.   {
  95.     return 0;
  96.   }
  97. }

  98. void rs_485_init()
  99. {
  100.   pinMode(D_0,INPUT);
  101.   pinMode(D_1,INPUT);
  102.   rs_485_all_pin_low();
  103. }
復制代碼

RS-485.rar (1.77 KB, 下載次數(shù): 21)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:937433 發(fā)表于 2021-6-14 18:34 | 只看該作者
how can i apply in my code void main.... how to send the message
thanks in advance
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩国产精品一区二区三区 | 国产精品区一区二区三区 | 国产一级免费在线观看 | 成人欧美日韩一区二区三区 | 成人午夜免费福利视频 | 中文无吗| 在线免费观看亚洲 | 国产精品久久久久久久久久久久久 | 国产女人精品视频 | 国产蜜臀 | 九色综合网 | 午夜在线 | 在线观看日韩av | 国产中文字幕亚洲 | 蜜桃视频在线观看www社区 | 日本精a在线观看 | 在线精品亚洲欧美日韩国产 | 在线资源视频 | 久久精品欧美一区二区三区不卡 | 国产午夜av片 | www.久久久久久久久久久久 | 99精品视频免费观看 | 国产成人精品免费视频大全最热 | 国产不卡视频在线 | 亚洲精选久久 | 一级黄色淫片 | 三级黄色片在线播放 | 欧美激情精品久久久久久变态 | 精品乱码一区二区三四区视频 | 国产福利视频导航 | 亚洲一一在线 | 国产精品日韩在线观看一区二区 | 国产一区二区三区在线视频 | 成人国产精品久久 | 国产一伦一伦一伦 | 国产精品区二区三区日本 | 国产一区二区三区四区五区加勒比 | 一区视频 | 免费在线观看一区二区三区 | 蜜桃av人人夜夜澡人人爽 | 免费黄色a级毛片 |