61 lines
2.6 KiB
C
61 lines
2.6 KiB
C
/**
|
||
******************************************************************************
|
||
* @file ow_port.h
|
||
* @brief This file includes the driver for port for OneWire purposes
|
||
******************************************************************************
|
||
*/
|
||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||
#ifndef ONEWIRE_PORT_H
|
||
#define ONEWIRE_PORT_H
|
||
|
||
|
||
/* Includes ------------------------------------------------------------------*/
|
||
#include "stm32f1xx_hal.h"
|
||
|
||
/* I/O Port ------------------------------------------------------------------*/
|
||
//#define LL_Driver ///< использовать CMSIS для управления ножкой
|
||
#define CMSIS_Driver ///< использовать CMSIS для управления ножкой
|
||
// если ничего не выбрано - используется HAL
|
||
|
||
|
||
/**
|
||
* @def OW_GPIO_Port
|
||
* @brief Порт вывода для шины 1-Wire.
|
||
* @details Указывает порт GPIO, к которому подключена линия данных 1-Wire (например, для DS18B20).
|
||
*/
|
||
#define OW_GPIO_Port GPIOA
|
||
|
||
/**
|
||
* @def OW_Pin_Numb
|
||
* @brief Номер пина в порту OW_GPIO_Port.
|
||
* @details Используется для формирования маски пина и настройки ввода/вывода.
|
||
*/
|
||
#define OW_Pin_Numb 1
|
||
|
||
/**
|
||
* @def OW_Pin
|
||
* @brief Маска пина, соответствующая номеру OW_Pin_Numb.
|
||
* @details Используется при доступе к регистрам порта для управления состоянием линии 1-Wire.
|
||
*/
|
||
#define OW_Pin (1<<OW_Pin_Numb)
|
||
|
||
/**
|
||
* @def OW_TIM
|
||
* @brief Аппаратный таймер для формирования временных интервалов протокола 1-Wire.
|
||
* @details Применяется для создания точных задержек при обмене данными по шине 1-Wire.
|
||
*/
|
||
#define OW_TIM TIM1
|
||
|
||
/**
|
||
* @def OW_TIM_1US_PERIOD
|
||
* @brief Количество тактов таймера OW_TIM, соответствующее 1 микросекунде.
|
||
* @details Вычисляется на основе частоты таймера. Например, для таймера с частотой 24 МГц значение будет равно 24.
|
||
*/
|
||
#define OW_TIM_1US_PERIOD 72
|
||
|
||
|
||
/* OneWire Timings -----------------------------------------------------------*/
|
||
void OneWire_Delay_us(uint32_t us);
|
||
/* Common Register -----------------------------------------------------------*/
|
||
#endif /* ONEWIRE_PORT_H */
|