добавлена реализация onewire через uart и переделана структуруа шины OneWire и инциализация

Теперь при выборе UART, в функцию Dallas_BusFirstInit передается hdallas, huart, ow, ds

А при выборе GPIO ножки: hdallas, gpiox, gpio_pin, ow, ds

но надо как-то структуруизировать дальше
This commit is contained in:
2025-06-30 18:34:17 +03:00
parent 175bcd539f
commit fa32d653e8
14 changed files with 373 additions and 61 deletions

View File

@@ -49,7 +49,7 @@ void OneWire_WriteBit(OneWire_t* OW, uint8_t bit)
}
__enable_irq();
#else
OneWireUART_ProcessBit(onewire_uart, bit);
OneWireUART_ProcessBit(OW->huart, bit);
#endif
}
@@ -82,7 +82,7 @@ uint8_t OneWire_ReadBit(OneWire_t* OW)
OneWire_Delay_us(ONEWIRE_COMMAND_SLOT_US - ONEWIRE_READ_CMD_US - ONEWIRE_READ_DELAY_US);
__enable_irq();
#else
bit = OneWireUART_ProcessBit(onewire_uart, 1);
bit = OneWireUART_ProcessBit(OW->huart, 1);
#endif
/* Return bit value */
return bit;
@@ -107,7 +107,7 @@ void OneWire_WriteByte(OneWire_t* OW, uint8_t byte)
byte >>= 1;
}
#else
OneWireUART_ProcessByte(onewire_uart, byte);
OneWireUART_ProcessByte(OW->huart, byte);
#endif
}
@@ -129,7 +129,7 @@ uint8_t OneWire_ReadByte(OneWire_t* OW)
byte |= (OneWire_ReadBit(OW) << 7);
}
#else
byte = OneWireUART_ProcessByte(onewire_uart, 0xFF);
byte = OneWireUART_ProcessByte(OW->huart, 0xFF);
#endif
return byte;
@@ -163,7 +163,7 @@ uint8_t OneWire_Reset(OneWire_t* OW)
#else
uint8_t rslt = 0;
if(OneWireUART_Reset(onewire_uart) == HAL_OK)
if(OneWireUART_Reset(OW->huart) == HAL_OK)
rslt = 0;
else
rslt = 1;
@@ -314,6 +314,7 @@ void OneWire_GetDevRom(OneWire_t* OW, uint8_t *ROM)
*/
void OneWire_Init(OneWire_t* OW)
{
#ifndef UART_Driver
OneWire_Pin_Mode(OW, Output);
OneWire_Pin_Level(OW, 1);
OneWire_Delay_us(1000);
@@ -321,7 +322,7 @@ void OneWire_Init(OneWire_t* OW)
OneWire_Delay_us(1000);
OneWire_Pin_Level(OW, 1);
OneWire_Delay_us(2000);
#endif
/* Reset the search state */
OW->LastDiscrepancy = 0;
OW->LastDeviceFlag = 0;