wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1428|回復(fù): 0
收起左側(cè)

GD32_F470的DS18B20程序

[復(fù)制鏈接]
ID:1075158 發(fā)表于 2024-3-8 10:58 | 顯示全部樓層 |閱讀模式
代碼片段1為“DS18B20.h”
代碼片段2為“DS18B20.c”
在main函數(shù)初始化部分直接調(diào)用“DQ_GPIO_Init();//初始化函數(shù) 使用時(shí)直接調(diào)用到主函數(shù)”
在main函數(shù)主循環(huán)中調(diào)用“Temp_Check();                //溫度獲取”即可獲取溫度

  1. #ifndef _DS18B20_H_
  2. #define _DS18B20_H_


  3. #include "gd32f4xx.h"

  4. //DQ_GPIO
  5. #define DQ_GPIO_Port          GPIOC            //GPIO分組編號(hào) 范圍A-E
  6. #define DQ_Pin                GPIO_PIN_13       //GPIO針腳號(hào)   范圍0-15
  7. //#define SET                                     GPIO_PIN_SET
  8. //#define RESET                                   GPIO_PIN_RESET


  9. //總線的電平
  10. typedef enum
  11. {
  12.         DQ_LEVEL_LOW = 0,
  13.         DQ_LEVEL_HIGHT
  14. }DQ_LEVEL_Type;

  15. /* 引腳寫高低電平 */
  16. #define DQ_Write(Level)     if(Level) \
  17.                                                                                 gpio_bit_set(DQ_GPIO_Port,DQ_Pin); \
  18.                                                     else  \
  19.                                                                                 gpio_bit_reset(DQ_GPIO_Port,DQ_Pin);

  20.                                                                
  21. #define DQ_Write_LOW     gpio_bit_set(DQ_GPIO_Port,DQ_Pin)
  22.                                                                
  23.                                                                
  24. #define DQ_Write_HIGH    gpio_bit_reset(DQ_GPIO_Port,DQ_Pin)

  25.                                                                
  26. /*讀取總線電平*/
  27. #define DQ_Read        gpio_input_bit_get(DQ_GPIO_Port,DQ_Pin)                                                                                                

  28. //ROM指令
  29. #define SKIP_ROM         0xCC     //跳過 ROM
  30. #define CONVERT_TEMP     0x44    //轉(zhuǎn)換溫度
  31. #define READ_SCRATCHPAD  0xBE   //讀取暫存器內(nèi)容
  32.                                                                                                 
  33. /*************************相關(guān)函數(shù)************************************************/        

  34. void DQ_GPIO_Init(void);                       //初始化函數(shù) 使用時(shí)直接調(diào)用到主函數(shù)                                                
  35. uint8_t Ds18b20_Init(void);        //初始化函數(shù) 使用時(shí)直接調(diào)用到主函數(shù)
  36. float Ds18b20_Get_Temp(void);                         //獲取溫度函數(shù),使用時(shí)直接調(diào)用                                                                        
  37. void Temp_Check(void);                                                         //溫度獲取函數(shù),直接顯示并調(diào)用,用于測(cè)試      


  38. #endif
復(fù)制代碼

  1. #include "DS18B20.h"
  2. #include "systick.h"


  3. float Tem = 0.0;
  4. char Data[20] = {0};


  5. //溫度檢測(cè)函數(shù) 檢測(cè)環(huán)境溫度 單精度浮點(diǎn)型
  6. void Temp_Check(void)
  7. {
  8.         Tem = Ds18b20_Get_Temp();
  9. //        sprintf(Data,"%f",Tem);
  10. }


  11. //DS18B20輸出IO口初始化
  12. void DQ_GPIO_Init(void)
  13. {
  14.         rcu_periph_clock_enable(RCU_GPIOC);                        //使能GPIO_C 時(shí)鐘

  15.         //DS18B20輸出   輸出模式(推挽輸出) 速度50MHz
  16.         gpio_mode_set(GPIOC, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_13);
  17.   gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_13);

  18. }


  19. //輸出初始化
  20. void DQ_GPIO_OUT(void)
  21. {

  22.         rcu_periph_clock_enable(RCU_GPIOC);                        //使能GPIO_C 時(shí)鐘

  23.         //DS18B20輸出   輸出模式(推挽輸出) 速度50MHz
  24.         gpio_mode_set(GPIOC, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_13);
  25.   gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_13);
  26.         
  27. }

  28. //輸入初始化
  29. void DQ_GPIO_IN(void)
  30. {
  31.         rcu_periph_clock_enable(RCU_GPIOC);                        //使能GPIO_C 時(shí)鐘

  32.         //DS18B20輸入   輸入模式 速度50MHz
  33.         gpio_mode_set(GPIOC, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_13);
  34.   gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_13);
  35.         
  36. }


  37. //DS18B20復(fù)位
  38. void Ds18b20_Reset(void)
  39. {
  40.         
  41.         DQ_GPIO_OUT();
  42.         
  43.         DQ_Write_LOW;
  44.         delay_us(750);
  45.         
  46.         DQ_Write_HIGH;
  47.         delay_us(15);
  48. }


  49. //掃描內(nèi)存
  50. uint8_t Ds18B20_CheckPulse(void)
  51. {
  52.         
  53.         uint8_t Time_Count = 0;
  54.         
  55.         DQ_GPIO_IN();
  56.         
  57.         while (DQ_Read && Time_Count < 100)
  58.         {
  59.                 Time_Count++;
  60.                 delay_us(1);
  61.         }
  62.         
  63.         if (Time_Count >= 100)
  64.                 return 1;   

  65.         else
  66.                 Time_Count = 0;
  67.         
  68.         while (!DQ_Read && Time_Count < 240)
  69.         {
  70.                 Time_Count++;
  71.                 delay_us(1);
  72.         }
  73.         
  74.         if (Time_Count >= 240)
  75.                 return 1;
  76.         else
  77.                 return 0;   
  78. }


  79. //讀取位
  80. uint8_t Ds18b20_Read_Bit(void)
  81. {
  82.         uint8_t dat;

  83.         DQ_GPIO_OUT();        

  84.         DQ_Write_LOW;
  85.         delay_us(15);        

  86.         DQ_GPIO_IN();        
  87.         if (DQ_Read == 1)
  88.                 dat = 1;
  89.         else
  90.                 dat = 0;

  91.         delay_us(50);
  92.         return dat;
  93. }


  94. //讀取字節(jié)
  95. uint8_t Ds18B20_Read_Byte(void)
  96. {
  97.         uint8_t data = 0x00,mask;
  98.         
  99.         for (mask = 0x01;mask != 0;mask <<= 1)
  100.         {
  101.                 if (Ds18b20_Read_Bit() == SET)
  102.                         data |= mask;
  103.                 else
  104.                         data &= ~mask;
  105.         }
  106.         return data;
  107. }


  108. //寫字節(jié)
  109. void Ds18B20_Write_Byte(uint8_t data)
  110. {
  111.         uint8_t mask;
  112.         
  113.         for (mask = 0x01;mask != 0;mask <<= 1)
  114.         {
  115.                 DQ_GPIO_OUT();


  116.                 if ((data & mask) == RESET)
  117.                 {
  118.                         DQ_Write_LOW;
  119.                         delay_us(70);
  120.                         
  121.                         DQ_Write_HIGH;
  122.                         delay_us(2);
  123.                 }
  124.                 else
  125.                 {
  126.                         DQ_Write_LOW;
  127.                         delay_us(9);
  128.                         
  129.                         DQ_Write_HIGH;
  130.                         delay_us(55);
  131.                 }
  132.         }
  133. }


  134. //DS18B20初始化
  135. uint8_t Ds18b20_Init(void)
  136. {
  137.         Ds18b20_Reset();
  138.         
  139.         return Ds18B20_CheckPulse();
  140. }




  141. //獲取溫度
  142. float Ds18b20_Get_Temp(void)
  143. {
  144.         uint8_t tpmsb, tplsb;
  145.         short s_tem;
  146.         float f_tem;
  147.         
  148.         Ds18b20_Reset();           
  149.         Ds18B20_CheckPulse();         
  150.         Ds18B20_Write_Byte(SKIP_ROM);                                       
  151.         Ds18B20_Write_Byte(CONVERT_TEMP);                                   
  152.         
  153.         Ds18b20_Reset();           
  154.         Ds18B20_CheckPulse();         
  155.         Ds18B20_Write_Byte(SKIP_ROM);                                       
  156.         Ds18B20_Write_Byte(READ_SCRATCHPAD);                        
  157.         
  158.         tplsb = Ds18B20_Read_Byte();                 
  159.         tpmsb = Ds18B20_Read_Byte();
  160.         
  161.         s_tem = tpmsb << 8;
  162.         s_tem = s_tem | tplsb;
  163.         
  164.         if( s_tem < 0 )               
  165.                 f_tem = (~s_tem+1) * 0.0625;        
  166.         else
  167.                 f_tem = s_tem * 0.0625;
  168.         
  169.         return f_tem;         
  170. }


復(fù)制代碼



評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
99久久久久久| 国产精品国产福利国产秒拍| 国产精品视频yy9299一区| 99久久精品网| 成人av免费电影网站| 中文字幕123| 日韩欧美伦理电影院| 69成人免费视频| 涩视频在线观看| 久久久天堂国产精品| 成人国产精品日本在线| 色小说视频一区| 欧美视频一区在线观看| 国产日产精品1区| 日本最新不卡在线| 羞羞答答成人影院www| 亚洲伦理一区二区| 后进极品白嫩翘臀在线播放| 在线中文字幕资源| 在线免费电影观看| 国产成人三级在线观看视频| 日本午夜小视频| 国产男女猛烈无遮挡a片漫画| 国产免费黄视频| 日韩免费毛片| 3d动漫啪啪精品一区二区免费| 日韩视频精品在线| 精品久久久三级丝袜| 午夜久久久久久电影| www国产精品av| 久久成人免费电影| 亚洲少妇诱惑| 亚洲xxx拳头交| 老司机aⅴ在线精品导航| 欧美日韩激情电影| 成人在线高清免费| 巨大荫蒂视频欧美另类大| 视频在线91| 天干夜天天夜天干天ww| 热99精品视频| 无码精品在线观看| 国产一区二区三区中文字幕| 日本熟妇毛耸耸xxxxxx| 99热6这里只有精品| 97人妻精品一区二区三区免费| 国产视频一区二区三区在线播放 | 精品国产乱码久久久久久久久| 欧美日韩综合视频| 亚洲蜜臀av乱码久久精品蜜桃| 91香蕉视频黄| 成人在线视频一区二区| 日日夜夜精品视频免费| 亚洲高清影视| 色天天久久综合婷婷女18| 亚洲成人一品| 欧美巨大xxxx| 成人av动漫| 果冻天美麻豆一区二区国产| 国产剧情一区二区在线观看| 欧洲成人一区| 成人在线免费| 麻豆久久久久| 国产免费区一区二区三视频免费 | 日韩大片在线免费观看| 亚洲天堂av资源在线观看| 欧美一级做a| 国产福利91精品一区二区| 亚洲精品mv| 欧美极度另类| 成人精品高清在线视频| 成人国产激情| 亚洲日本视频在线| 国产精品主播在线观看| 久久久久观看| 国产传媒欧美日韩成人精品大片| 美女毛片一区二区三区四区最新中文字幕亚洲| 97一区二区国产好的精华液| 亚洲乱码一区| 在线看成人短视频| 伊人情人综合网| 亚洲福利专区| 日本vs亚洲vs韩国一区三区二区| 五月天丁香婷| 日本二区视频| 中日韩一区二区三区| 欧美知名女优| 狠狠色伊人亚洲综合网站l| 黄色片免费在线| av毛片在线看| 欧美精选视频一区二区| av国产精品| 亚洲人亚洲人色久| 久久中文亚洲字幕| 激情久久久久久| 青青青伊人色综合久久| 国产成人精品免费网站| 国产性天天综合网| 亚洲一区二区视频在线| 色婷婷狠狠综合| 精品国产乱码久久久久久老虎| 综合网中文字幕| 国产91|九色| 99久久99久久| www亚洲国产| av无码精品一区二区三区| 黄色性视频网站| 欧美被狂躁喷白浆精品| 国产三级自拍视频| 国产精品伦理一区二区三区| 加勒比在线日本| 91看片在线观看| 欧美日韩在线精品一区二区三区激情综合| 精品中文字幕一区二区三区四区| heyzo久久| 久久99精品国产.久久久久| 久久久久亚洲蜜桃| 欧美视频中文在线看| 精品国产乱码久久久久久图片| 久久国产精品首页| 痴汉一区二区三区| 欧美一级在线看| 成人免费毛片糖心| 亚洲综合视频在线播放| 国产精品久久久亚洲第一牛牛| 精品国产999久久久免费| 精品樱空桃一区二区三区| 成人在线观看视频app| 男人天堂亚洲| 一个色免费成人影院| 先锋亚洲精品| 中文字幕精品在线不卡| 欧美裸体bbwbbwbbw| 久久偷看各类女兵18女厕嘘嘘| 国产精品久久久久久久久久久不卡| 欧美日韩一区二区视频在线| 中文字幕 91| 欧洲猛交xxxx乱大交3| 男人天堂一区二区| 日韩黄色视屏| 日韩经典一区| 欧美日韩在线大尺度| www国产精品av| 欧美日韩精品一区二区三区四区 | 天堂网在线观看国产精品| 国内精品写真在线观看| 亚洲高清免费视频| 亚洲无av在线中文字幕| 99国精产品一二二线| 日本久久久精品视频| 2025国产精品自拍| 欧美孕妇与黑人巨交| 福利在线播放| 亚洲bt欧美bt精品777| 精品系列免费在线观看| 懂色av一区二区三区| 欧美大片va欧美在线播放| 久久久水蜜桃| 亚洲熟女一区二区| www.日韩在线观看| 成人动漫av| 日本成人精品| 精久久久久久久久久久| 一本大道久久精品懂色aⅴ| 欧美大片网站在线观看 | 欧美大秀在线观看| 日韩一区国产在线观看| 国产精品无码一区二区三| 国产精品无码免费播放| 在线天堂日本| 91蜜桃臀久久一区二区| 国产乱码精品一区二区三区忘忧草| 在线观看日韩av先锋影音电影院| 97成人精品区在线播放| 97超碰人人澡| 天天综合网入口| av官网在线| 在线日韩三级| 国产黄色精品网站| 日韩欧美电影一区| 激情久久av| 能免费看av的网站| 欧美四级剧情无删版影片| 国产高清一区二区三区视频| 亚洲xxx拳头交| 99pao成人国产永久免费视频| 亚洲免费av在线| 欧美国产日韩二区| 日韩精品一区二区三区久久| 天堂网中文字幕| 裸体网站视频| 久草在线成人| 亚洲欧美激情小说另类| 91精品国产色综合久久不卡98口| 可以在线看的av网站| 中文天堂在线资源| 色视频免费在线观看| 欧美一区二区性| 国产精品久久久久一区| 欧美—级a级欧美特级ar全黄| 爱福利视频一区二区| 国产一区二区在线视频聊天| 番号集在线观看| 精品1区2区3区4区| 欧美无砖砖区免费| 国产欧美一区二区三区不卡高清| 黄色aaa视频| 91蝌蚪九色| 日本在线视频一区二区三区| 神马久久资源| 男女男精品网站| 日韩精品一区二区三区老鸭窝| 久久国产手机看片| 国产精品免费人成网站酒店| 性直播在线观看| 亚洲欧洲av| 午夜影院在线观看欧美| 亚洲aⅴ男人的天堂在线观看| 中日韩精品一区二区三区| 国产精品9区| 久久久久久久久久久久电影| 国产日韩欧美在线一区| 欧美一区二区三区艳史| 日韩高清一二三区| 国产又猛又粗| 一区二区免费| 亚洲一区在线电影| 国产超碰91| 欧美日韩中文字幕在线观看| 免费男女羞羞的视频网站主页在线观看| 四虎8848精品成人免费网站| 色久优优欧美色久优优| 久久精品国产精品国产精品污 | 亚洲激情自拍视频| 国产日韩欧美夫妻视频在线观看| 国产美女精品久久| 成人18网址在线观看| 色综合色综合| 91精品国产欧美一区二区| 一区二区不卡在线视频 午夜欧美不卡' | 国产91精品一区二区绿帽| wwwav国产| 免费理论片在线观看播放老| 国产毛片久久| 亚洲视频日韩精品| 欧美三级理论片| 国产中文字幕av| 夜色77av精品影院| 欧美在线啊v一区| 亚洲一区二区三区午夜| 99久久久久久久| www.久久| 亚洲最新视频在线播放| 久久99国产精品99久久| 日日夜夜操视频| av成人福利| 国产日产亚洲精品系列| 成人字幕网zmw| 日韩经典在线观看| 丝袜在线观看| 日韩大片在线播放| 精品国产乱码久久久久久久| 欧美日韩中文在线视频| 中国xxxx视频播放50| 97欧美在线视频| 亚洲激情 国产| 精品国产鲁一鲁一区二区三区| 青青草免费在线观看| 一二三区不卡| 在线午夜精品自拍| 亚洲婷婷在线观看| 麻豆影视在线观看| 国产麻豆精品theporn| 日韩av男人的天堂| 日本一区二区欧美| 精精国产xxxx视频在线野外| 综合久久一区二区三区| 欧美在线视频一区二区三区| 亚洲精品一区二区三区不卡| 澳门成人av| 精品国产亚洲在线| 99999精品| 在线看的你懂得| 国产一区二三区| 国产精品老牛影院在线观看| 国产亚洲欧美久久久久| 亚洲免费一级片| 精品三级在线| 欧美影院精品一区| 亚洲中文字幕无码不卡电影| 女明星视频黄又免费| 99在线精品免费视频九九视 | 国产成人无码一二三区视频| 中国xxxx自拍视频| 99在线热播精品免费99热| 欧美日韩国产二区| avtt天堂在线| 唐人社导航福利精品| 日本高清免费不卡视频| 日本爱爱免费视频| 污污免费网站| av一本久道久久综合久久鬼色| 国产一区二区三区av在线| 天天操天天射天天| 久久综合电影| 欧美激情日韩图片| 日韩一区二区视频在线| 成人亚洲精品| 亚洲精品国产精品久久清纯直播| 国产极品一区二区| а√天堂资源地址在线下载| 亚洲男女毛片无遮挡| 每日在线观看av| 成人免费在线观看网站| 国产成人精品综合在线观看 | 精品亚洲成人| 欧美成人免费观看| 国产成人无码一区二区三区在线| 国产精品一区二区精品| 亚洲精品美女视频| 网站永久看片免费| 日韩福利一区| 日韩久久久久久| 国产传媒在线看| gogo亚洲高清大胆美女人体 | 色黄视频在线| 国产精品午夜在线观看| av网站手机在线观看| 日本在线аv| 中国色在线观看另类| 日本a在线免费观看| 蜜臀一区二区三区| 亚洲视频一二三| 中文久久久久久| 日韩在线资源| 日本道在线观看一区二区| 91精品又粗又猛又爽| 美女的胸无遮挡在线观看 | 波多野结衣在线中文| 色乱码一区二区三区网站| 欧美成人免费观看| 中文文字幕一区二区三三| 欧美一级淫片| 欧美在线观看网站| 色呦呦视频在线| 三级久久三级久久| 久久精品人成| 天天天天天天操| 亚洲国产成人私人影院tom| 男人的天堂99| 动漫一区在线| 91精品国产一区二区三区| 国产免费一区二区三区四区| 日韩一区免费| 欧美日韩高清在线观看| 国内老熟妇对白xxxxhd| 一本色道久久综合亚洲精品不卡| 国产精品视频免费一区| www.午夜| 一区在线中文字幕| 青娱乐精品在线| 中国色在线日|韩| 伊人久久综合97精品| 中国黄色一级视频| 91久久久久| 四虎永久在线精品免费一区二区| 黄色三级电影网| 欧美日韩激情美女| 精品无码人妻一区| 日韩最新av| 国产精品成人网| 午夜宅男在线视频| 免费成人在线电影| 亚洲品质视频自拍网| 国产真人无遮挡作爱免费视频| 午夜视频精品| 日韩尤物视频| 免费一级毛片在线观看| 欧美日韩色一区| 在线看成人av| 一区在线免费| 日韩在线电影一区| 欧洲毛片在线| 欧美xfplay| 在线观看国产区| 日本午夜一本久久久综合| 久久观看最新视频| 高潮毛片在线观看| 中文字幕欧美国内| 色一情一乱一乱一区91av| 国产成人精品免费在线| 亚洲一级免费观看| 电影亚洲一区| 日本精品一区二区三区在线| 一色屋免费视频| 亚洲国产精品综合小说图片区| 亚洲色图日韩精品| 国产精品99久久精品| 日韩精品av一区二区三区| 在线观看国产原创自拍视频| 亚洲欧美在线磁力|