61 lines
2.2 KiB
C
61 lines
2.2 KiB
C
/**
|
|
******************************************************************************
|
|
* @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 --------------------------------------------*/
|
|
extern UART_HandleTypeDef huart1;
|
|
#define onewire_uart (&huart1)
|
|
#define ONEWIRE_BAUDRATE 115200
|
|
#define ONEWIRE_RESET_BAUDRATE 9600
|
|
#define ONEWIRE_UART_TIMEOUT 10
|
|
#define ONEWIRE_BITS_NUM 8
|
|
|
|
/**
|
|
* @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
|