добавлена реализация onewire через uart и переделана структуруа шины OneWire и инциализация
Теперь при выборе UART, в функцию Dallas_BusFirstInit передается hdallas, huart, ow, ds А при выборе GPIO ножки: hdallas, gpiox, gpio_pin, ow, ds но надо как-то структуруизировать дальше
This commit is contained in:
57
DS18B20/onewire_uart.h
Normal file
57
DS18B20/onewire_uart.h
Normal file
@@ -0,0 +1,57 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : onewire_uart.h
|
||||
* @brief : 1-Wire driver
|
||||
* @author : MicroTechnics (microtechnics.ru)
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef ONEWIRE_UART_H
|
||||
#define ONEWIRE_UART_H
|
||||
|
||||
|
||||
|
||||
/* Includes ----------------------------------------------------------------*/
|
||||
|
||||
#include "stm32f1xx_hal.h"
|
||||
|
||||
|
||||
/* Declarations and definitions --------------------------------------------*/
|
||||
#define ONEWIRE_BAUDRATE 115200
|
||||
#define ONEWIRE_RESET_BAUDRATE 9600
|
||||
#define ONEWIRE_UART_TIMEOUT 10
|
||||
|
||||
/**
|
||||
* @brief Комманды OneWire
|
||||
* @details Определяет байты для uart, которые будут
|
||||
* формировать необходимую длину импульса для разных комманд
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
ONEWIRE_RESET = 0xF0, /*!< @brief Импульс длиной 520мкс для команды Reset (9600bod)
|
||||
@details 1-Wire требует импульс длительностью >480мкс */
|
||||
|
||||
ONEWIRE_PULSE_SHORT = 0xFF, /*!< @brief Импульс длиной 8.7 мкс для записи "1"/чтения бита (115200bod)
|
||||
@details 1-Wire требует импульс длительностью 1-15мкс */
|
||||
|
||||
|
||||
ONEWIRE_PULSE_LONG = 0x00, /*!< @brief импульс длиной 78.3 мкс для записи "0" (115200bod)
|
||||
@details 1-Wire требует импульс длительностью 60-120мкс */
|
||||
|
||||
// ONEWIRE_PULSE_1_15US = 0xFF,
|
||||
// ONEWIRE_PULSE_60_120US = 0x00,
|
||||
}ONEWIRE_Commands;
|
||||
|
||||
|
||||
|
||||
|
||||
/* Functions ---------------------------------------------------------------*/
|
||||
/* Выполняет 1-Wire Reset и проверяет наличие устройств на шине */
|
||||
HAL_StatusTypeDef OneWireUART_Reset(UART_HandleTypeDef *huart);
|
||||
/* Передает и принимает байт через 1-Wire */
|
||||
uint8_t OneWireUART_ProcessByte(UART_HandleTypeDef *huart, uint8_t byte);
|
||||
/* Передает и принимает один бит через 1-Wire */
|
||||
uint8_t OneWireUART_ProcessBit(UART_HandleTypeDef *huart, uint8_t bit);
|
||||
|
||||
|
||||
|
||||
#endif // #ifndef ONEWIRE_UART_H
|
||||
Reference in New Issue
Block a user