全球旧事资料 分类
情况的处理。
u8DS18B20_Checkvoidj检测ds18b20是否存在

u8retry0
DS18B20_IO_INSETPA0INPUT
whileDS18B20_DQ_INretry200

retry
delay_us1

ifretry200retur
1
elseretry0
whileDS18B20_DQ_INretry240

retry
delay_us1

ifretry240retur
1
retur
0
(3)控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、
报警芯片搜索。ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。其主要目的是
为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并
通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:
此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。控制器发送存
f储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。
voidDS18B20_Startvoidds1820startco
vertDS18B20_RstDS18B20_CheckDS18B20_Write_Byte0xccskiprom跳过ROMDS18B20_Write_Byte0x44co
vert温度转换命令
4执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为500uS。如执行数据读写指令则需要严格遵循18B20的读写时序来操作。数据的读写方法将有下文有详细介绍。若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作指令、等待500uS温度转换时间。紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作指令、读数据(最多为9个字节,中途可停止,只读简单温度值则读前2个字节即可)。其它的操作流程也大同小异,在此不多介绍。
f七、内部ADC转换STM32最多会有三个内部ADC转换器,每个转换器均有18个通道其中16个外部通道和2个内部通道(信号源)。每个ADC转换器都有单次、连续、扫描或间断四种工作模式,ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。1、ADC开关控制通过设置ADC_CR2寄存器的ADON位可给ADC上电。(1)当第一次设置ADON位时,它将ADC从断电状态下唤醒;(2)Ar
好听全球资料 返回顶部