chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DS18B20驅(qū)動程序調(diào)試總結(jié)

TopSemic嵌入式 ? 來源:TopSemic嵌入式 ? 作者:TopSemic嵌入式 ? 2022-04-03 09:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

DS18B20是一款精度比較好的溫度傳感器,最重要的是它通過一根導(dǎo)線,既完成通訊,又給芯片供電,在MCU引腳數(shù)量比較緊張的時候,確實是個不錯的選擇。這顆芯片看起來簡單,但真正讓它跑起來,從里面讀出溫度數(shù)據(jù)可沒有想象的那么容易。這不,群里的Ryan Wang同學(xué)就被折磨得不行。難能可貴的是,在王同學(xué)終于搞定它之后,無私地分享出心得和代碼。如果你覺得這篇文章能幫到更多的同學(xué),就幫忙轉(zhuǎn)發(fā),或點個在看吧。

通過CUBE使能TIM2定時器,Clock Source使用internal Clock,MCU主頻為32Mhz,故Prescaler=32-1=31,Counter Mode為UP,這里注意Counter Period 官方手冊要求最低為1,經(jīng)測試設(shè)置為2時,定時器更為準(zhǔn)確。

完成以上配置后,需要在程序手動調(diào)整和增加功能代碼:

1. Cube配置TIM2定時器的基礎(chǔ)上,在程序編寫delay_us(uint16_t us)函數(shù),delay_us的精確度將直接影響DS18B20溫度數(shù)據(jù)的讀取結(jié)果。本程序使用了HAL庫(CUBE勾選配置)

voiddelay_us(uint16_tus)
{
/*中斷會打斷微秒延時函數(shù),
*但計數(shù)器計數(shù)不會停
*防止計數(shù)器增加到65535之后重新開始計數(shù)
*/
uint16_tdiffer=50000-us;

HAL_TIM_Base_Start(&htim2);
__HAL_TIM_SET_COUNTER(&htim2,differ);

while(differ<50000)
????{
????????differ=__HAL_TIM_GET_COUNTER(&htim2);
????}

????HAL_TIM_Base_Stop(&htim2);
}

2. 注意程序工程中DS18B20.H的定義,及DS18B20.C文件,(同文件夾下附件)其內(nèi)部函數(shù)定義根據(jù)DS18B20官方手冊進(jìn)行操作,DS18B20為one wire 通訊,對時序的要求相對嚴(yán)格,DS18B20的數(shù)據(jù)通訊通過DS18B20的data管腳進(jìn)行單片機(jī)通訊,主要流程為:

1.DS18B20初始化

2.DS18B20接入自檢

3.DS18B20寫0xcc(SKIP ROM)

4.寫0x44(通知傳感器進(jìn)行溫度數(shù)據(jù)采集與轉(zhuǎn)換)

5.DS18B2再次初始化

6.DS18B20再次接入自檢

7.DS18B20寫0xcc(SKIP ROM)(倒序即0011 0011,如下圖左)

8.DS18B20寫0xbe(通知傳感器進(jìn)行數(shù)傳)(倒序0111 1101,下圖右)

9.DS18B20讀一個字節(jié)

10.DS18B20再讀一個字節(jié)

11.數(shù)據(jù)的預(yù)處理

ee6209e8-b18b-11ec-aa7f-dac502259ad0.png

3. 以上每步操作都需要微秒級延時等待,參考DS18B20官方手冊關(guān)于“DS18B20初始化與check”,“寫0”,“寫1”,“讀0”,“讀1”的具體時序要求,注意針對不同MCU的主頻配置,在保證1微秒延時準(zhǔn)確的前提下,具體的微秒延時將有所調(diào)整;特別注意在讀時序時的延時,針對32MHZ的本機(jī),在DS18B20.C中已做延時調(diào)整(參考正點原子DS18B20試驗(72MHZ),使用示波器抓取各個階段波形,結(jié)合DS18B20手冊,對比調(diào)試,)若時序不對,則讀數(shù)一直為0或者85。著重理解DS18B20_data管腳的輸入和輸出模式,拉高和拉低(如DS18B20標(biāo)準(zhǔn)電路要求在data管腳接上拉電阻,那么在管腳IN和OUT模式下,如未人為拉高或拉低,則管腳電平會自動拉高)。

ee826b48-b18b-11ec-aa7f-dac502259ad0.png

eea28ffe-b18b-11ec-aa7f-dac502259ad0.png

eeb6b9a2-b18b-11ec-aa7f-dac502259ad0.png

4. 傳感器選用DS18B20,因外部封裝種類繁多,在此不放鏈接。

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    462

    文章

    53499

    瀏覽量

    458587
  • 溫度傳感器
    +關(guān)注

    關(guān)注

    48

    文章

    3103

    瀏覽量

    162393
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3359

    瀏覽量

    121665

原文標(biāo)題:DS18B20驅(qū)動程序調(diào)試總結(jié)

文章出處:【微信號:TopSemic,微信公眾號:TopSemic嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    要做一個DS18B20的讀取程序,單總線需要配置為輸入或者輸出,怎么配置好?

    目前要做一個DS18B20的讀取程序,單總線需要配置為輸入或者輸出。怎么配置好
    發(fā)表于 11-18 06:30

    使用18b20軟件包報錯怎么解決?

    In file included from ../packages/ds18b20-latest/src/dallas_ds18b20_sensor_v1.c:12:0: C
    發(fā)表于 10-14 06:49

    zephyr設(shè)備驅(qū)動程序模型

    ? ? 1:Zephyr 內(nèi)核支持多種設(shè)備驅(qū)動程序。驅(qū)動程序是否可用取決于board 和驅(qū)動程序。 Zephyr 設(shè)備模型為配置作為系統(tǒng)一部分的驅(qū)動程序提供了一致的設(shè)備模型。設(shè)備型號負(fù)
    的頭像 發(fā)表于 07-29 10:34 ?444次閱讀
    zephyr設(shè)備<b class='flag-5'>驅(qū)動程序</b>模型

    單片機(jī)實例項目:DS18B20溫度傳感器

    單片機(jī)實例項目:DS18B20溫度傳感器,推薦下載!
    發(fā)表于 06-03 20:59

    Linux環(huán)境再升級:PLIN驅(qū)動程序正式發(fā)布

    PLIN驅(qū)動程序現(xiàn)已正式發(fā)布,本文將展示如何安裝PLIN驅(qū)動程序,以及如何在Linux環(huán)境下進(jìn)行基本的PLIN通信操作,確保您能夠快速掌握并應(yīng)用這一新工具。
    的頭像 發(fā)表于 04-21 15:29 ?767次閱讀
    Linux環(huán)境再升級:PLIN<b class='flag-5'>驅(qū)動程序</b>正式發(fā)布

    血淚教訓(xùn)總結(jié):Air780EPM的LuatOS二次開發(fā)——OneWire協(xié)議調(diào)試注意事項

    的OneWire通信,大幅提升項目開發(fā)效率。 一、LuatOS 及 OneWire 說明 ? LuatOS 支持 OneWire 通信協(xié)議,本文以 DS18B20 溫度傳感器和 Air780EPM 搭配
    的頭像 發(fā)表于 03-20 17:52 ?894次閱讀
    血淚教訓(xùn)<b class='flag-5'>總結(jié)</b>:Air780EPM的LuatOS二次開發(fā)——OneWire協(xié)議<b class='flag-5'>調(diào)試</b>注意事項

    最佳實踐指南:Air780EPM的LuatOS二次開發(fā)——OneWire協(xié)議調(diào)試的注意事項

    在物聯(lián)網(wǎng)設(shè)備開發(fā)中,精準(zhǔn)且穩(wěn)定的數(shù)據(jù)傳輸是構(gòu)建智能系統(tǒng)的核心。 一、LuatOS 及 OneWire 說明 ? LuatOS 支持 OneWire 通信協(xié)議,本文以 DS18B20 溫度傳感器
    的頭像 發(fā)表于 03-17 16:57 ?565次閱讀
    最佳實踐指南:Air780EPM的LuatOS二次開發(fā)——OneWire協(xié)議<b class='flag-5'>調(diào)試</b>的注意事項

    基于FPGA的DS18B20數(shù)字溫度傳感器測溫實例

    本文將使用三段式狀態(tài)機(jī)(Moore型)的寫法來對DS18B20進(jìn)行測溫操作,以便了解DS18B20和熟悉三段式狀態(tài)機(jī)的寫法。
    的頭像 發(fā)表于 03-17 11:06 ?2059次閱讀
    基于FPGA的<b class='flag-5'>DS18B20</b>數(shù)字溫度傳感器測溫實例

    DS18B20實時溫度傳感器中文資料

    DS18B20 是一種單總線數(shù)字溫度傳感器,它被廣泛應(yīng)用于各種領(lǐng)域,例如氣象監(jiān)測、室內(nèi)溫度控制、工業(yè)自動化等。DS18B20 采用了單總線接口(One-Wire Interface),這意味著可以通過單個引腳與微控制器通信,大大簡化了連接和布線
    發(fā)表于 02-28 17:02 ?5次下載

    AN3761-KSZ DSA驅(qū)動程序的使用

    電子發(fā)燒友網(wǎng)站提供《AN3761-KSZ DSA驅(qū)動程序的使用.pdf》資料免費下載
    發(fā)表于 01-22 16:28 ?0次下載
    AN3761-KSZ DSA<b class='flag-5'>驅(qū)動程序</b>的使用

    摩爾線程發(fā)布圖形顯卡驅(qū)動程序v280.90.2

    1月20日,摩爾線程發(fā)布最新圖形顯卡驅(qū)動程序v280.90.2。
    的頭像 發(fā)表于 01-21 10:07 ?871次閱讀

    基于FPGA的溫度傳感器(ds18b20)驅(qū)動設(shè)計

    本篇主要討論基于FPGA的溫度傳感器(ds18b20驅(qū)動設(shè)計---第一版 設(shè)計實現(xiàn):利用FPGA驅(qū)動DS18b20,讀取到溫度數(shù)值顯示到數(shù)碼管上。 首先介紹
    的頭像 發(fā)表于 01-16 14:08 ?2017次閱讀
    基于FPGA的溫度傳感器(<b class='flag-5'>ds18b20</b>)<b class='flag-5'>驅(qū)動</b>設(shè)計

    【正點原子STM32H7R3開發(fā)套件試用體驗】DS18B20、DHT11溫濕度采集

    錯誤。 檢測到 DS18B20 后,開始讀取溫度,顯示在 LCD,每隔 100ms 讀取并顯示,串口發(fā)送溫度值。 LED0 閃爍,指示程序運行狀態(tài)。 代碼 #include \"
    發(fā)表于 01-01 11:16

    《DNESP32S3使用指南-IDF版_V1.6》第二十九章 DS18B20實驗

    DS18B20的通信,并把從溫度傳感器得到的溫度顯示在LCD上。本章分為如下幾個小節(jié):29.1 DS18B20簡介29.2 硬件設(shè)計29.3 程序設(shè)計29.4 下載驗證 29.1 DS18B
    發(fā)表于 12-25 09:43

    DS8007有相關(guān)的單片機(jī)例程或者sdk驅(qū)動程序嗎?求分享

    請問DS8007有相關(guān)的單片機(jī)例程或者sdk驅(qū)動程序嗎?
    發(fā)表于 12-19 07:13