当前位置:首页 > 单片机 > 单片机
[导读]环境:IAR 7.4stm32cubemx 4.13.1stm32f1 1.3.1freertos 8.1读ds18b20主要是时序,就是一个微秒级的delay。先看电路:这里使用上拉电阻,DQ设为OD模式,在读取和输出时,也做了PIN的方向改变,不做改变,则只能读取到

环境:

IAR 7.4

stm32cubemx 4.13.1

stm32f1 1.3.1

freertos 8.1


读ds18b20主要是时序,就是一个微秒级的delay。

先看电路:


这里使用上拉电阻,DQ设为OD模式,在读取和输出时,也做了PIN的方向改变,不做改变,则只能读取到0值。

不想使用上拉电阻,则可以把DQ设为PP模式,Mbed开发板使用这个可以成功读出。

没有电路的代码,是不完整的,不容易让人理解。


delay的实现,是使用timer,也可以使用nop指令。这里使用Timer3 定时器提供滴答。

GPIO和TIMER的配置使用stm32cubemx,这里不列出,有问题可以在forum里提出。


/*

*微秒延迟

*/

voidtherm_delay(uint16_tnCount)

{

__IOuint16_tTIMCounter=nCount;

uint16_tstart=TIM_MST->CNT;

uint16_tend=start+TIMCounter;

__IOuint16_tread;

while(1){

read=TIM_MST->CNT;

if(read

read=0xffff-start+read;

if(read>=end)

break;

}

}




频繁调用的改变方向和读取,改到寄存器操作,减少函数调用的开销。

根据需要对端口和Pin进行修改。


//PB8:IO方向设置

#defineTHERM_INPUT_MODE(){GPIOB->CRH&=0xFFFFFFF0;GPIOB->CRH|=0x4;}

#defineTHERM_OUTPUT_MODE(){GPIOB->CRH&=0xFFFFFFF0;GPIOB->CRH|=0x5;}

#defineDQ_READ()((GPIOB->IDR&GPIO_PIN_8)>>8)




把对ds18b20的读取放在一个对实时要求不高的task里,它会延误task几个毫秒的执行。

代码里有crc验证,如果中断或其他任务干扰读取时序,则取用值时将其扔掉。因此可以放心的把它集成到自己的项目中去。

调用:


//读取结果

typedefstruct{

int8_tvalue;

int8_terror;

}ThermValue;

.

.

.

__IOThermValuev_ds18b20;

/*ds18b20*/

if(start_conversion){

v_ds18b20=therm_read_temperature();

start_conversion=false;

}

else{

therm_start_conversion();

start_conversion=true;

}

if(v_ds18b20.error==0)

cv=v_ds18b20.value;


操作ds18b20的代码和例子非常多,实际上也很简单,但是有的代码别人正常,而自己就是不正常。


原因就是硬件和软件的不一致,而且发生问题无处可问。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

#51单片机#DS18B20硬件原理以及通信的工作时序

关键字: ds18b20 通信

DS18B20型智能温度传感器的工作原理

关键字: ds18b20 原理

DS18B20是一款常用的高精度的单总线数字温度测量芯片。具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

关键字: ds18b20 手册

DS18B20是一款常用的高精度的单总线数字温度测量芯片。具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

关键字: ds18b20 引脚图

  1 引言   自动调温光疗系统是一种医用理疗仪器,其原理是采用单片机对可控硅的控制来控制高压下的激光输出器进行理疗,在激光输出器工作的同时对其进行实时温度检测,利用检测到的温度状况决

关键字: ds18b20 moc3021 自动调温

  引言   根据世界卫生组织公布的数据,全世界目前有3 000多万人目盲,其中约有18%是中国人。针对盲人行动不便的情况,本文介绍了一种基于超声相控阵的盲人避障系统。   本文

关键字: stm32f103 超声相控阵 导盲系统

  随着IPTV和多媒体业务的迅速发展,用户对接入带宽的要求不断增加,目前的铜线接入技术很难满足用户对高带宽、双向传输、及安全性方面的要求。在2010年以前,FTTB是中国主流的FTTx建网模式

关键字: stm32f103 张力传感器

引言 随着互联网技术、无线通信技术以及生物传感器技术的进一步发展,可供病人在医院、家庭等环境中使用的可穿戴健康监测预警系统已成为国内外研究人员关注的热点。 本文设计了一种应用互联

关键字: stm32f103 互联网 脉搏监测

致力于亚太地区市场的领先半导体元器件分销商---大联大控股宣布,其旗下友尚推出基于意法半导体(ST)STM32F103与德州仪器(TI)CC2564的智能车载双模蓝牙方案WLT2564S。该车载

关键字: stm32f103 蓝牙

2016年8月16日,致力于亚太地区市场的领先半导体元器件分销商---大联大控股宣布,其旗下友尚推出基于意法半导体(ST)STM32F103与德州仪器(TI)CC2564的智能车载双模蓝牙方案W

关键字: cc2564 stm32f103 大联大友尚
关闭
关闭