我需要你有资格的帮助!我正在使用 C++ 编程,使用 PIC 18F87J50 并尝试在我的 H0 端口连接 DS18B20!
我认为我的底层编程是正确的,所以....我遇到的问题(认为我有)是在执行 ROM 命令时,我正在搜索 64 位 ROM 代码。
第一个字节应该告诉我组件属于哪个系列(28h)。接下来的 48 位应该为我提供一个仅用于该组件的 uniq 序列。最后一个用于CRC。
这样做时我的想法是否正确:
void Device_ID( uint8_t command ){
uint8_t ROM_CODE[8]; // 1 byte CRC, 6 bytes SERIAL, 1 byte Family code
uint8_t loop;
static char container[8];
OW_reset_pulse();
OW_write_byte( command );
for(loop = 0; loop < 8; loop++) // 1 byte in per time = 64-bits
{
ROM_CODE[loop] = OW_read_byte();
}
HexToStrWithZeros(ROM_CODE[0], container);
Display_Cls();
Display_StringAt ("Family Code: ",5,6);
Display_Buffer (container);
}
如果我要求 ROM_CODE[1-6] 中的代码,我应该得到 uniq 号??我不应该吗?
亲切的问候!