Compare commits
3 Commits
3402381c55
...
369e4a4b82
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
369e4a4b82 | ||
|
|
b5a26200f3 | ||
|
|
a5a14679f3 |
@@ -1,13 +1,13 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file dallas_tools.c
|
* @file dallas_tools.c
|
||||||
* @brief Драйвер для работы с датчиками температуры DS18B20
|
* @brief Драйвер для работы с датчиками температуры DS18B20
|
||||||
* @author MicroTechnics (microtechnics.ru)
|
* @author MicroTechnics (microtechnics.ru)
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
@details
|
@details
|
||||||
Этот файл содержит реализацию функций для работы с датчиком DS18B20
|
Этот файл содержит реализацию функций для работы с датчиком DS18B20
|
||||||
через интерфейс 1-Wire. Он предоставляет функции для чтения и записи
|
через интерфейс 1-Wire. Он предоставляет функции для чтения и записи
|
||||||
конфигурации, выполнения измерений и обработки полученных данных.
|
конфигурации, выполнения измерений и обработки полученных данных.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
@@ -22,8 +22,8 @@ DALLAS_HandleTypeDef hdallas1;
|
|||||||
|
|
||||||
/* Functions ---------------------------------------------------------------*/
|
/* Functions ---------------------------------------------------------------*/
|
||||||
/**
|
/**
|
||||||
* @brief Функция для нахождения нового датчика на место потерянного
|
* @brief Функция для нахождения нового датчика на место потерянного
|
||||||
* @param sensor Указатель на структуру датчика
|
* @param sensor Указатель на структуру датчика
|
||||||
* @retval HAL Status
|
* @retval HAL Status
|
||||||
*/
|
*/
|
||||||
HAL_StatusTypeDef Dallas_ReplaceLostedSensor(DALLAS_SensorHandleTypeDef *sensor)
|
HAL_StatusTypeDef Dallas_ReplaceLostedSensor(DALLAS_SensorHandleTypeDef *sensor)
|
||||||
@@ -48,15 +48,15 @@ HAL_StatusTypeDef Dallas_ReplaceLostedSensor(DALLAS_SensorHandleTypeDef *sensor)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return HAL_BUSY; // датчик не потерян
|
return HAL_BUSY; // датчик не потерян
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Функция для иниицализации нового датчика в структуре
|
* @brief Функция для иниицализации нового датчика в структуре
|
||||||
* @param onewire Указатель на структуру OneWire
|
* @param onewire Указатель на структуру OneWire
|
||||||
* @param sensor Указатель на структуру датчика
|
* @param sensor Указатель на структуру датчика
|
||||||
* @retval HAL Status
|
* @retval HAL Status
|
||||||
*/
|
*/
|
||||||
HAL_StatusTypeDef Dallas_AddNewSensors(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor)
|
HAL_StatusTypeDef Dallas_AddNewSensors(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor)
|
||||||
@@ -78,9 +78,9 @@ HAL_StatusTypeDef Dallas_AddNewSensors(DALLAS_HandleTypeDef *hdallas, DALLAS_Sen
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Инициализирует структуру датчика по ROM
|
* @brief Инициализирует структуру датчика по ROM
|
||||||
* @param onewire Указатель на структуру OneWire
|
* @param onewire Указатель на структуру OneWire
|
||||||
* @param sensor Указатель на структуру датчика
|
* @param sensor Указатель на структуру датчика
|
||||||
* @retval HAL Status
|
* @retval HAL Status
|
||||||
*/
|
*/
|
||||||
HAL_StatusTypeDef Dallas_SensorInitByROM(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor)
|
HAL_StatusTypeDef Dallas_SensorInitByROM(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor)
|
||||||
@@ -122,7 +122,7 @@ HAL_StatusTypeDef Dallas_SensorInitByROM(DALLAS_HandleTypeDef *hdallas, DALLAS_S
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Проверка присутствует ли выбранный датчик на линии */
|
/* Проверка присутствует ли выбранный датчик на линии */
|
||||||
if(comparebytes == 0)
|
if(comparebytes == 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -140,9 +140,9 @@ HAL_StatusTypeDef Dallas_SensorInitByROM(DALLAS_HandleTypeDef *hdallas, DALLAS_S
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Инициализирует структуру датчика по пользовательским байтам
|
* @brief Инициализирует структуру датчика по пользовательским байтам
|
||||||
* @param onewire Указатель на структуру OneWire
|
* @param onewire Указатель на структуру OneWire
|
||||||
* @param sensor Указатель на структуру датчика
|
* @param sensor Указатель на структуру датчика
|
||||||
* @retval HAL Status
|
* @retval HAL Status
|
||||||
*/
|
*/
|
||||||
HAL_StatusTypeDef Dallas_SensorInitByUserBytes(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor)
|
HAL_StatusTypeDef Dallas_SensorInitByUserBytes(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor)
|
||||||
@@ -163,12 +163,12 @@ HAL_StatusTypeDef Dallas_SensorInitByUserBytes(DALLAS_HandleTypeDef *hdallas, DA
|
|||||||
|
|
||||||
for(int i = 0; i < hdallas->onewire->RomCnt; i++)
|
for(int i = 0; i < hdallas->onewire->RomCnt; i++)
|
||||||
{
|
{
|
||||||
/* Проверка присутствует ли выбранный датчик на линии */
|
/* Проверка присутствует ли выбранный датчик на линии */
|
||||||
result = DS18B20_ReadScratchpad(hdallas->onewire, (uint8_t *)&DS.DevAddr[i], (uint8_t *)&hdallas->scratchpad);
|
result = DS18B20_ReadScratchpad(hdallas->onewire, (uint8_t *)&DS.DevAddr[i], (uint8_t *)&hdallas->scratchpad);
|
||||||
if (result != HAL_OK)
|
if (result != HAL_OK)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
/* Сравнение UserByte1 и UserByte2, если они не равны нулю */
|
/* Сравнение UserByte1 и UserByte2, если они не равны нулю */
|
||||||
if((sensor->Init.InitParam & 0xFFFF) != NULL)
|
if((sensor->Init.InitParam & 0xFFFF) != NULL)
|
||||||
{
|
{
|
||||||
if( (hdallas->scratchpad.tHighRegister == UserByte1) &&
|
if( (hdallas->scratchpad.tHighRegister == UserByte1) &&
|
||||||
@@ -176,12 +176,12 @@ HAL_StatusTypeDef Dallas_SensorInitByUserBytes(DALLAS_HandleTypeDef *hdallas, DA
|
|||||||
{
|
{
|
||||||
UserByte12Cmp = 1;
|
UserByte12Cmp = 1;
|
||||||
}
|
}
|
||||||
}/* Если сравнение UserByte1 и UserByte2 не выбрано, то считаем что они совпадают */
|
}/* Если сравнение UserByte1 и UserByte2 не выбрано, то считаем что они совпадают */
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UserByte12Cmp = 1;
|
UserByte12Cmp = 1;
|
||||||
}
|
}
|
||||||
/* Сравнение UserByte3 и UserByte4, если они не равны нулю */
|
/* Сравнение UserByte3 и UserByte4, если они не равны нулю */
|
||||||
if((sensor->Init.InitParam & 0xFFFF0000) != NULL)
|
if((sensor->Init.InitParam & 0xFFFF0000) != NULL)
|
||||||
{
|
{
|
||||||
if( (hdallas->scratchpad.UserByte3 == UserByte3) &&
|
if( (hdallas->scratchpad.UserByte3 == UserByte3) &&
|
||||||
@@ -189,12 +189,12 @@ HAL_StatusTypeDef Dallas_SensorInitByUserBytes(DALLAS_HandleTypeDef *hdallas, DA
|
|||||||
{
|
{
|
||||||
UserByte34Cmp = 1;
|
UserByte34Cmp = 1;
|
||||||
}
|
}
|
||||||
}/* Если сравнение UserByte3 и UserByte4 не выбрано, то считаем что они одинаковые */
|
}/* Если сравнение UserByte3 и UserByte4 не выбрано, то считаем что они одинаковые */
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UserByte34Cmp = 1;
|
UserByte34Cmp = 1;
|
||||||
}
|
}
|
||||||
/* Если нашли нужный датчик - завершаем поиск */
|
/* Если нашли нужный датчик - завершаем поиск */
|
||||||
if(UserByte12Cmp && UserByte34Cmp)
|
if(UserByte12Cmp && UserByte34Cmp)
|
||||||
{
|
{
|
||||||
// sensor->isInitialized = 1;
|
// sensor->isInitialized = 1;
|
||||||
@@ -205,17 +205,17 @@ HAL_StatusTypeDef Dallas_SensorInitByUserBytes(DALLAS_HandleTypeDef *hdallas, DA
|
|||||||
}
|
}
|
||||||
|
|
||||||
sensor->sensROM = 0;
|
sensor->sensROM = 0;
|
||||||
/* Возвращаем ошибку если не нашли */
|
/* Возвращаем ошибку если не нашли */
|
||||||
return HAL_ERROR;
|
return HAL_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Инициализирует структуру датчика по порядковому номеру
|
* @brief Инициализирует структуру датчика по порядковому номеру
|
||||||
* @param onewire Указатель на структуру OneWire
|
* @param onewire Указатель на структуру OneWire
|
||||||
* @param sensor Указатель на структуру датчика
|
* @param sensor Указатель на структуру датчика
|
||||||
* @retval HAL Status
|
* @retval HAL Status
|
||||||
* @details Порядковый номер датчика в списке найденных.
|
* @details Порядковый номер датчика в списке найденных.
|
||||||
* Т.е. каким по счету этот датчик был найден
|
* Т.е. каким по счету этот датчик был найден
|
||||||
*/
|
*/
|
||||||
HAL_StatusTypeDef Dallas_SensorInitByInd(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor)
|
HAL_StatusTypeDef Dallas_SensorInitByInd(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor)
|
||||||
{
|
{
|
||||||
@@ -232,10 +232,10 @@ HAL_StatusTypeDef Dallas_SensorInitByInd(DALLAS_HandleTypeDef *hdallas, DALLAS_S
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Инициализирует датчик для работы
|
* @brief Инициализирует датчик для работы
|
||||||
* @param onewire Указатель на структуру OneWire
|
* @param onewire Указатель на структуру OneWire
|
||||||
* @param sensor Указатель на структуру датчика
|
* @param sensor Указатель на структуру датчика
|
||||||
* @param ROM ROM датчика, который надо инициализировать
|
* @param ROM ROM датчика, который надо инициализировать
|
||||||
* @retval HAL Status
|
* @retval HAL Status
|
||||||
*/
|
*/
|
||||||
HAL_StatusTypeDef Dallas_SensorInit(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor, uint8_t (*ROM)[DALLAS_ROM_SIZE])
|
HAL_StatusTypeDef Dallas_SensorInit(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor, uint8_t (*ROM)[DALLAS_ROM_SIZE])
|
||||||
@@ -253,11 +253,11 @@ HAL_StatusTypeDef Dallas_SensorInit(DALLAS_HandleTypeDef *hdallas, DALLAS_Sensor
|
|||||||
// for(int i = 0; i < DALLAS_ROM_SIZE; i++)
|
// for(int i = 0; i < DALLAS_ROM_SIZE; i++)
|
||||||
// sensor->sensROM |= ((uint64_t)(*ROM)[i] << (56 - 8*i));
|
// sensor->sensROM |= ((uint64_t)(*ROM)[i] << (56 - 8*i));
|
||||||
|
|
||||||
/* Проверка присутствует ли выбранный датчик на линии */
|
/* Проверка присутствует ли выбранный датчик на линии */
|
||||||
result = DS18B20_ReadScratchpad(hdallas->onewire, (uint8_t *)&sensor->sensROM, (uint8_t *)&hdallas->scratchpad);
|
result = DS18B20_ReadScratchpad(hdallas->onewire, (uint8_t *)&sensor->sensROM, (uint8_t *)&hdallas->scratchpad);
|
||||||
if (result == HAL_OK)
|
if (result == HAL_OK)
|
||||||
{
|
{
|
||||||
/* Установка разрешения */
|
/* Установка разрешения */
|
||||||
result = DS18B20_SetResolution(hdallas->onewire, (uint8_t *)ROM, sensor->Init.Resolution);
|
result = DS18B20_SetResolution(hdallas->onewire, (uint8_t *)ROM, sensor->Init.Resolution);
|
||||||
if (result == HAL_OK)
|
if (result == HAL_OK)
|
||||||
{
|
{
|
||||||
@@ -278,10 +278,10 @@ HAL_StatusTypeDef Dallas_SensorInit(DALLAS_HandleTypeDef *hdallas, DALLAS_Sensor
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Деинициализирует структуру датчика
|
* @brief Деинициализирует структуру датчика
|
||||||
* @param onewire Указатель на структуру OneWire
|
* @param onewire Указатель на структуру OneWire
|
||||||
* @param sensor Указатель на структуру датчика
|
* @param sensor Указатель на структуру датчика
|
||||||
* @param sens_ind Порядковый номер датчика в структуре
|
* @param sens_ind Порядковый номер датчика в структуре
|
||||||
* @retval HAL Status
|
* @retval HAL Status
|
||||||
*/
|
*/
|
||||||
HAL_StatusTypeDef Dallas_SensorDeInit(DALLAS_SensorHandleTypeDef *sensor)
|
HAL_StatusTypeDef Dallas_SensorDeInit(DALLAS_SensorHandleTypeDef *sensor)
|
||||||
@@ -299,10 +299,10 @@ HAL_StatusTypeDef Dallas_SensorDeInit(DALLAS_SensorHandleTypeDef *sensor)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Запускает измерение температуры на всех датчиках
|
* @brief Запускает измерение температуры на всех датчиках
|
||||||
* @param onewire Указатель на структуру OneWire
|
* @param onewire Указатель на структуру OneWire
|
||||||
* @param waitCondition Условие ожидания завершения преобразования
|
* @param waitCondition Условие ожидания завершения преобразования
|
||||||
* @param dallas_delay_ms Время ожидания окончания конверсии
|
* @param dallas_delay_ms Время ожидания окончания конверсии
|
||||||
* @retval HAL Status
|
* @retval HAL Status
|
||||||
*/
|
*/
|
||||||
HAL_StatusTypeDef Dallas_StartConvertTAll(DALLAS_HandleTypeDef *hdallas, DALLAS_WaitConvertionTypeDef waitCondition, uint8_t dallas_delay_ms)
|
HAL_StatusTypeDef Dallas_StartConvertTAll(DALLAS_HandleTypeDef *hdallas, DALLAS_WaitConvertionTypeDef waitCondition, uint8_t dallas_delay_ms)
|
||||||
@@ -313,24 +313,24 @@ HAL_StatusTypeDef Dallas_StartConvertTAll(DALLAS_HandleTypeDef *hdallas, DALLAS_
|
|||||||
if(hdallas == NULL)
|
if(hdallas == NULL)
|
||||||
return HAL_ERROR;
|
return HAL_ERROR;
|
||||||
|
|
||||||
// Отправка команды начала преобразования температуры
|
// Отправка команды начала преобразования температуры
|
||||||
result = DS18B20_StartConvTAll(hdallas->onewire);
|
result = DS18B20_StartConvTAll(hdallas->onewire);
|
||||||
if(result != HAL_OK)
|
if(result != HAL_OK)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
// // Проверка что преобразование началось
|
// // Проверка что преобразование началось
|
||||||
// if(OneWire_ReadBit(onewire) == 1)
|
// if(OneWire_ReadBit(onewire) == 1)
|
||||||
// return HAL_ERROR;
|
// return HAL_ERROR;
|
||||||
|
|
||||||
// Ожидание завершения преобразования, путем проверки шины
|
// Ожидание завершения преобразования, путем проверки шины
|
||||||
if (waitCondition == DALLAS_WAIT_BUS)
|
if (waitCondition == DALLAS_WAIT_BUS)
|
||||||
{
|
{
|
||||||
result = DS18B20_WaitForEndConvertion(hdallas->onewire);
|
result = DS18B20_WaitForEndConvertion(hdallas->onewire);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ожидание завершения преобразования, путем задержки
|
// Ожидание завершения преобразования, путем задержки
|
||||||
if (waitCondition == DALLAS_WAIT_DELAY)
|
if (waitCondition == DALLAS_WAIT_DELAY)
|
||||||
{
|
{
|
||||||
uint32_t delayValueMs = 0;
|
uint32_t delayValueMs = 0;
|
||||||
@@ -364,9 +364,9 @@ HAL_StatusTypeDef Dallas_StartConvertTAll(DALLAS_HandleTypeDef *hdallas, DALLAS_
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Измеряет температуру на датчике
|
* @brief Измеряет температуру на датчике
|
||||||
* @param sensor Указатель на структуру датчика
|
* @param sensor Указатель на структуру датчика
|
||||||
* @param waitCondition Условие ожидания завершения преобразования
|
* @param waitCondition Условие ожидания завершения преобразования
|
||||||
* @retval HAL Status
|
* @retval HAL Status
|
||||||
*/
|
*/
|
||||||
HAL_StatusTypeDef Dallas_ConvertT(DALLAS_SensorHandleTypeDef *sensor, DALLAS_WaitConvertionTypeDef waitCondition)
|
HAL_StatusTypeDef Dallas_ConvertT(DALLAS_SensorHandleTypeDef *sensor, DALLAS_WaitConvertionTypeDef waitCondition)
|
||||||
@@ -379,19 +379,19 @@ HAL_StatusTypeDef Dallas_ConvertT(DALLAS_SensorHandleTypeDef *sensor, DALLAS_Wai
|
|||||||
if(sensor->isInitialized == 0)
|
if(sensor->isInitialized == 0)
|
||||||
return HAL_ERROR;
|
return HAL_ERROR;
|
||||||
|
|
||||||
/* Проверка присутствует ли выбранный датчик на линии */
|
/* Проверка присутствует ли выбранный датчик на линии */
|
||||||
result = Dallas_IsConnected(sensor);
|
result = Dallas_IsConnected(sensor);
|
||||||
if (result != HAL_OK)
|
if (result != HAL_OK)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
// Отправка команды начала преобразования температуры
|
// Отправка команды начала преобразования температуры
|
||||||
result = DS18B20_StartConvT(sensor->hdallas->onewire, (uint8_t *)&sensor->sensROM);
|
result = DS18B20_StartConvT(sensor->hdallas->onewire, (uint8_t *)&sensor->sensROM);
|
||||||
if(result != HAL_OK)
|
if(result != HAL_OK)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ожидание завершения преобразования, путем проверки шины
|
// Ожидание завершения преобразования, путем проверки шины
|
||||||
if (waitCondition == DALLAS_WAIT_BUS)
|
if (waitCondition == DALLAS_WAIT_BUS)
|
||||||
{
|
{
|
||||||
result = DS18B20_WaitForEndConvertion(sensor->hdallas->onewire);
|
result = DS18B20_WaitForEndConvertion(sensor->hdallas->onewire);
|
||||||
@@ -402,7 +402,7 @@ HAL_StatusTypeDef Dallas_ConvertT(DALLAS_SensorHandleTypeDef *sensor, DALLAS_Wai
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ожидание завершения преобразования, путем задержки
|
// Ожидание завершения преобразования, путем задержки
|
||||||
if (waitCondition == DALLAS_WAIT_DELAY)
|
if (waitCondition == DALLAS_WAIT_DELAY)
|
||||||
{
|
{
|
||||||
uint32_t delayValueMs = 0;
|
uint32_t delayValueMs = 0;
|
||||||
@@ -432,7 +432,7 @@ HAL_StatusTypeDef Dallas_ConvertT(DALLAS_SensorHandleTypeDef *sensor, DALLAS_Wai
|
|||||||
HAL_Delay(delayValueMs);
|
HAL_Delay(delayValueMs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Не считываем температуру, если не выбрано ожидание окончания преобразования */
|
/* Не считываем температуру, если не выбрано ожидание окончания преобразования */
|
||||||
if(waitCondition != DALLAS_WAIT_NONE)
|
if(waitCondition != DALLAS_WAIT_NONE)
|
||||||
{
|
{
|
||||||
result = Dallas_ReadTemperature(sensor);
|
result = Dallas_ReadTemperature(sensor);
|
||||||
@@ -443,8 +443,8 @@ HAL_StatusTypeDef Dallas_ConvertT(DALLAS_SensorHandleTypeDef *sensor, DALLAS_Wai
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Читает измеренную датчиком температуру
|
* @brief Читает измеренную датчиком температуру
|
||||||
* @param sensor Указатель на структуру датчика
|
* @param sensor Указатель на структуру датчика
|
||||||
* @retval HAL Status
|
* @retval HAL Status
|
||||||
*/
|
*/
|
||||||
HAL_StatusTypeDef Dallas_ReadTemperature(DALLAS_SensorHandleTypeDef *sensor)
|
HAL_StatusTypeDef Dallas_ReadTemperature(DALLAS_SensorHandleTypeDef *sensor)
|
||||||
@@ -456,7 +456,7 @@ HAL_StatusTypeDef Dallas_ReadTemperature(DALLAS_SensorHandleTypeDef *sensor)
|
|||||||
if(sensor->isInitialized == 0)
|
if(sensor->isInitialized == 0)
|
||||||
return HAL_ERROR;
|
return HAL_ERROR;
|
||||||
|
|
||||||
/* Проверка присутствует ли выбранный датчик на линии */
|
/* Проверка присутствует ли выбранный датчик на линии */
|
||||||
result = Dallas_IsConnected(sensor);
|
result = Dallas_IsConnected(sensor);
|
||||||
if (result != HAL_OK)
|
if (result != HAL_OK)
|
||||||
{
|
{
|
||||||
@@ -476,8 +476,8 @@ HAL_StatusTypeDef Dallas_ReadTemperature(DALLAS_SensorHandleTypeDef *sensor)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Проверяет подключен ли датчик (чтение scratchpad)
|
* @brief Проверяет подключен ли датчик (чтение scratchpad)
|
||||||
* @param sensor Указатель на структуру датчика
|
* @param sensor Указатель на структуру датчика
|
||||||
* @retval HAL Status
|
* @retval HAL Status
|
||||||
*/
|
*/
|
||||||
HAL_StatusTypeDef Dallas_IsConnected(DALLAS_SensorHandleTypeDef *sensor)
|
HAL_StatusTypeDef Dallas_IsConnected(DALLAS_SensorHandleTypeDef *sensor)
|
||||||
@@ -506,18 +506,18 @@ HAL_StatusTypeDef Dallas_IsConnected(DALLAS_SensorHandleTypeDef *sensor)
|
|||||||
sensor->isConnected = 0;
|
sensor->isConnected = 0;
|
||||||
|
|
||||||
// Dallas_ReplaceLostedSensor(sensor);
|
// Dallas_ReplaceLostedSensor(sensor);
|
||||||
return HAL_BUSY; // использую busy, чтобы отличать ситуацию от HAL_ERROR
|
return HAL_BUSY; // использую busy, чтобы отличать ситуацию от HAL_ERROR
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Записывает пользовательские байты
|
* @brief Записывает пользовательские байты
|
||||||
* @param sensor Указатель на структуру датчика
|
* @param sensor Указатель на структуру датчика
|
||||||
* @param UserBytes12 Пользовательские байты 1 и 2
|
* @param UserBytes12 Пользовательские байты 1 и 2
|
||||||
* @param UserBytes34 Пользовательские байты 3 и 4
|
* @param UserBytes34 Пользовательские байты 3 и 4
|
||||||
* @param UserBytesMask Маска, какие байты записывать, а какие нет
|
* @param UserBytesMask Маска, какие байты записывать, а какие нет
|
||||||
* @retval HAL Status
|
* @retval HAL Status
|
||||||
* @details старший байт - UserByte4/UserByte2, младший - UserByte3/UserByte1.
|
* @details старший байт - UserByte4/UserByte2, младший - UserByte3/UserByte1.
|
||||||
*/
|
*/
|
||||||
HAL_StatusTypeDef Dallas_WriteUserBytes(DALLAS_SensorHandleTypeDef *sensor, uint16_t UserBytes12, uint16_t UserBytes34, uint8_t UserBytesMask)
|
HAL_StatusTypeDef Dallas_WriteUserBytes(DALLAS_SensorHandleTypeDef *sensor, uint16_t UserBytes12, uint16_t UserBytes34, uint8_t UserBytesMask)
|
||||||
{
|
{
|
||||||
@@ -526,7 +526,7 @@ HAL_StatusTypeDef Dallas_WriteUserBytes(DALLAS_SensorHandleTypeDef *sensor, uint
|
|||||||
if(sensor->isInitialized == 0)
|
if(sensor->isInitialized == 0)
|
||||||
return HAL_ERROR;
|
return HAL_ERROR;
|
||||||
|
|
||||||
/* Проверка присутствует ли выбранный датчик на линии */
|
/* Проверка присутствует ли выбранный датчик на линии */
|
||||||
result = Dallas_IsConnected(sensor);
|
result = Dallas_IsConnected(sensor);
|
||||||
if (result != HAL_OK)
|
if (result != HAL_OK)
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file dallas_tools.h
|
* @file dallas_tools.h
|
||||||
* @brief Драйвер датчиков температуры DALLAS
|
* @brief Драйвер датчиков температуры DALLAS
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* Этот файл предоставляет объявления и определения для работы с датчиками
|
* Этот файл предоставляет объявления и определения для работы с датчиками
|
||||||
* температуры DS18B20. Он включает структуры данных, макросы и прототипы
|
* температуры DS18B20. Он включает структуры данных, макросы и прототипы
|
||||||
* функций для инициализации, чтения температуры
|
* функций для инициализации, чтения температуры
|
||||||
* и управления датчиками.
|
* и управления датчиками.
|
||||||
*
|
*
|
||||||
* Работа с датчиками ведётся через протокол OneWire.
|
* Работа с датчиками ведётся через протокол OneWire.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
#ifndef DALLAS_TOOLS_H
|
#ifndef DALLAS_TOOLS_H
|
||||||
@@ -20,15 +20,15 @@
|
|||||||
#include "ds18b20_driver.h"
|
#include "ds18b20_driver.h"
|
||||||
#include "onewire.h"
|
#include "onewire.h"
|
||||||
|
|
||||||
/* Определения пользовательских байтов для записи чтения */
|
/* Определения пользовательских байтов для записи чтения */
|
||||||
#define DALLAS_USER_BYTE_1 (1<<0) ///< Первый пользовательский байт
|
#define DALLAS_USER_BYTE_1 (1<<0) ///< Первый пользовательский байт
|
||||||
#define DALLAS_USER_BYTE_2 (1<<1) ///< Второй пользовательский байт
|
#define DALLAS_USER_BYTE_2 (1<<1) ///< Второй пользовательский байт
|
||||||
#define DALLAS_USER_BYTE_3 (1<<2) ///< Третий пользовательский байт
|
#define DALLAS_USER_BYTE_3 (1<<2) ///< Третий пользовательский байт
|
||||||
#define DALLAS_USER_BYTE_4 (1<<3) ///< Четвёртый пользовательский байт
|
#define DALLAS_USER_BYTE_4 (1<<3) ///< Четвёртый пользовательский байт
|
||||||
|
|
||||||
#define DALLAS_USER_BYTE_12 (DALLAS_USER_BYTE_1|DALLAS_USER_BYTE_2) ///< Первые два байта
|
#define DALLAS_USER_BYTE_12 (DALLAS_USER_BYTE_1|DALLAS_USER_BYTE_2) ///< Первые два байта
|
||||||
#define DALLAS_USER_BYTE_34 (DALLAS_USER_BYTE_3|DALLAS_USER_BYTE_4) ///< Вторые два байта
|
#define DALLAS_USER_BYTE_34 (DALLAS_USER_BYTE_3|DALLAS_USER_BYTE_4) ///< Вторые два байта
|
||||||
#define DALLAS_USER_BYTE_ALL (DALLAS_USER_BYTE_12|DALLAS_USER_BYTE_34) ///< Все пользовательские байты
|
#define DALLAS_USER_BYTE_ALL (DALLAS_USER_BYTE_12|DALLAS_USER_BYTE_34) ///< Все пользовательские байты
|
||||||
|
|
||||||
/* Declarations and definitions ---------------------------------------------*/
|
/* Declarations and definitions ---------------------------------------------*/
|
||||||
#define DALLAS_ROM_SIZE 8
|
#define DALLAS_ROM_SIZE 8
|
||||||
@@ -44,41 +44,41 @@
|
|||||||
#define DALLAS_DELAY_MS_12_BITS 750
|
#define DALLAS_DELAY_MS_12_BITS 750
|
||||||
#define DALLAS_DELAY_MS_MAX DALLAS_DELAY_MS_12_BITS
|
#define DALLAS_DELAY_MS_MAX DALLAS_DELAY_MS_12_BITS
|
||||||
|
|
||||||
/** @brief Структура Scratchpad датчика DALLAS */
|
/** @brief Структура Scratchpad датчика DALLAS */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
uint8_t TemperatureLSB; ///< Младший байт температуры
|
uint8_t TemperatureLSB; ///< Младший байт температуры
|
||||||
uint8_t TemperatureMSB; ///< Старший байт температуры
|
uint8_t TemperatureMSB; ///< Старший байт температуры
|
||||||
uint8_t tHighRegister; ///< Верхний температурный порог
|
uint8_t tHighRegister; ///< Верхний температурный порог
|
||||||
uint8_t tLowRegister; ///< Нижний температурный порог
|
uint8_t tLowRegister; ///< Нижний температурный порог
|
||||||
uint8_t ConfigRegister; ///< Конфигурационный регистр
|
uint8_t ConfigRegister; ///< Конфигурационный регистр
|
||||||
uint8_t reserved; ///< Зарезервировано
|
uint8_t reserved; ///< Зарезервировано
|
||||||
uint8_t UserByte3; ///< Пользовательский байт 3
|
uint8_t UserByte3; ///< Пользовательский байт 3
|
||||||
uint8_t UserByte4; ///< Пользовательский байт 4
|
uint8_t UserByte4; ///< Пользовательский байт 4
|
||||||
uint8_t ScratchpadCRC; ///< Контрольная сумма
|
uint8_t ScratchpadCRC; ///< Контрольная сумма
|
||||||
}DALLAS_ScratchpadTypeDef;
|
}DALLAS_ScratchpadTypeDef;
|
||||||
|
|
||||||
/** @brief Структура флагов ошибок датчиков DALLAS */
|
/** @brief Структура флагов ошибок датчиков DALLAS */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
uint8_t disconnect_cnt; ///< Счетчик отключений датчика
|
uint8_t disconnect_cnt; ///< Счетчик отключений датчика
|
||||||
uint8_t read_temperature_err_cnt; ///< Счетчик ошибок чтения температуры
|
uint8_t read_temperature_err_cnt; ///< Счетчик ошибок чтения температуры
|
||||||
uint8_t timeout_convertion_cnt; ///< Счетчик ошибок таймаута конвертации
|
uint8_t timeout_convertion_cnt; ///< Счетчик ошибок таймаута конвертации
|
||||||
uint8_t write_err_cnt; ///< Счетчик других ошибок
|
uint8_t write_err_cnt; ///< Счетчик других ошибок
|
||||||
}DALLAS_FlagsTypeDef;
|
}DALLAS_FlagsTypeDef;
|
||||||
|
|
||||||
|
|
||||||
/** @brief Структура инициализации датчика DALLAS */
|
/** @brief Структура инициализации датчика DALLAS */
|
||||||
typedef struct __packed
|
typedef struct __packed
|
||||||
{
|
{
|
||||||
uint64_t InitParam; ///< Параметр для инициализации: ROM/UserBytes/Индекс
|
uint64_t InitParam; ///< Параметр для инициализации: ROM/UserBytes/Индекс
|
||||||
uint8_t Resolution; ///< Разрешение датчика
|
uint8_t Resolution; ///< Разрешение датчика
|
||||||
HAL_StatusTypeDef (*init_func)(); ///< Функция инициализации
|
HAL_StatusTypeDef (*init_func)(); ///< Функция инициализации
|
||||||
} DALLAS_InitStructTypeDef;
|
} DALLAS_InitStructTypeDef;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** @brief Cтруктура обработчика DALLAS для общения с датчиком*/
|
/** @brief Cтруктура обработчика DALLAS для общения с датчиком*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
OneWire_t *onewire;
|
OneWire_t *onewire;
|
||||||
@@ -86,59 +86,59 @@ typedef struct
|
|||||||
}DALLAS_HandleTypeDef;
|
}DALLAS_HandleTypeDef;
|
||||||
extern DALLAS_HandleTypeDef hdallas1;
|
extern DALLAS_HandleTypeDef hdallas1;
|
||||||
|
|
||||||
/** @brief Основная структура обработчика датчика DALLAS */
|
/** @brief Основная структура обработчика датчика DALLAS */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
unsigned isConnected:1; ///< Флаг соединения
|
unsigned isConnected:1; ///< Флаг соединения
|
||||||
unsigned isInitialized:1; ///< Флаг инициализации
|
unsigned isInitialized:1; ///< Флаг инициализации
|
||||||
unsigned isLost:1; ///< Флаг потери связи
|
unsigned isLost:1; ///< Флаг потери связи
|
||||||
|
|
||||||
DALLAS_HandleTypeDef *hdallas;
|
DALLAS_HandleTypeDef *hdallas;
|
||||||
uint64_t sensROM; ///< ROM-код датчика
|
uint64_t sensROM; ///< ROM-код датчика
|
||||||
|
|
||||||
float temperature; ///< Текущая температура
|
float temperature; ///< Текущая температура
|
||||||
|
|
||||||
DALLAS_InitStructTypeDef Init; ///< Структура инициализации
|
DALLAS_InitStructTypeDef Init; ///< Структура инициализации
|
||||||
DALLAS_FlagsTypeDef f; ///< Флаги
|
DALLAS_FlagsTypeDef f; ///< Флаги
|
||||||
} DALLAS_SensorHandleTypeDef;
|
} DALLAS_SensorHandleTypeDef;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** @brief Варианты ожидания окончания конверсии */
|
/** @brief Варианты ожидания окончания конверсии */
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
DALLAS_WAIT_NONE = 0x00, ///< Без ожидания окончания конверсии
|
DALLAS_WAIT_NONE = 0x00, ///< Без ожидания окончания конверсии
|
||||||
DALLAS_WAIT_BUS = 0x01, ///< Ожидание окончания конверсии по шине (опрос датчиков - чтение бита)
|
DALLAS_WAIT_BUS = 0x01, ///< Ожидание окончания конверсии по шине (опрос датчиков - чтение бита)
|
||||||
DALLAS_WAIT_DELAY = 0x02, ///< Без ожидания окончания через задержку (максимальная задержка для заданной разрядности)
|
DALLAS_WAIT_DELAY = 0x02, ///< Без ожидания окончания через задержку (максимальная задержка для заданной разрядности)
|
||||||
} DALLAS_WaitConvertionTypeDef;
|
} DALLAS_WaitConvertionTypeDef;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Functions ---------------------------------------------------------------*/
|
/* Functions ---------------------------------------------------------------*/
|
||||||
|
|
||||||
/* Функция для нахождения нового датчика на место потерянного */
|
/* Функция для нахождения нового датчика на место потерянного */
|
||||||
HAL_StatusTypeDef Dallas_ReplaceLostedSensor(DALLAS_SensorHandleTypeDef *sensor);
|
HAL_StatusTypeDef Dallas_ReplaceLostedSensor(DALLAS_SensorHandleTypeDef *sensor);
|
||||||
/* Функция для иниицализации нового датчика в структуре */
|
/* Функция для иниицализации нового датчика в структуре */
|
||||||
HAL_StatusTypeDef Dallas_AddNewSensors(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor);
|
HAL_StatusTypeDef Dallas_AddNewSensors(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor);
|
||||||
/* Инициализирует структуру датчика по ROM */
|
/* Инициализирует структуру датчика по ROM */
|
||||||
HAL_StatusTypeDef Dallas_SensorInitByROM(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor);
|
HAL_StatusTypeDef Dallas_SensorInitByROM(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor);
|
||||||
/* Инициализирует структуру датчика по пользовательским байтам */
|
/* Инициализирует структуру датчика по пользовательским байтам */
|
||||||
HAL_StatusTypeDef Dallas_SensorInitByUserBytes(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor);
|
HAL_StatusTypeDef Dallas_SensorInitByUserBytes(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor);
|
||||||
/* Инициализирует структуру датчика по порядковому номеру */
|
/* Инициализирует структуру датчика по порядковому номеру */
|
||||||
HAL_StatusTypeDef Dallas_SensorInitByInd(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor);
|
HAL_StatusTypeDef Dallas_SensorInitByInd(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor);
|
||||||
/* Инициализирует датчик для работы */
|
/* Инициализирует датчик для работы */
|
||||||
HAL_StatusTypeDef Dallas_SensorInit(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor, uint8_t (*ROM)[DALLAS_ROM_SIZE]);
|
HAL_StatusTypeDef Dallas_SensorInit(DALLAS_HandleTypeDef *hdallas, DALLAS_SensorHandleTypeDef *sensor, uint8_t (*ROM)[DALLAS_ROM_SIZE]);
|
||||||
/* Деинициализирует структуру датчика */
|
/* Деинициализирует структуру датчика */
|
||||||
HAL_StatusTypeDef Dallas_SensorDeInit(DALLAS_SensorHandleTypeDef *sensor);
|
HAL_StatusTypeDef Dallas_SensorDeInit(DALLAS_SensorHandleTypeDef *sensor);
|
||||||
/* Запускает измерение температуры на всех датчиках */
|
/* Запускает измерение температуры на всех датчиках */
|
||||||
HAL_StatusTypeDef Dallas_StartConvertTAll(DALLAS_HandleTypeDef *hdallas, DALLAS_WaitConvertionTypeDef waitCondition, uint8_t dallas_delay_ms);
|
HAL_StatusTypeDef Dallas_StartConvertTAll(DALLAS_HandleTypeDef *hdallas, DALLAS_WaitConvertionTypeDef waitCondition, uint8_t dallas_delay_ms);
|
||||||
/* Измеряет температуру на датчике */
|
/* Измеряет температуру на датчике */
|
||||||
HAL_StatusTypeDef Dallas_ConvertT(DALLAS_SensorHandleTypeDef *sensor, DALLAS_WaitConvertionTypeDef waitCondition);
|
HAL_StatusTypeDef Dallas_ConvertT(DALLAS_SensorHandleTypeDef *sensor, DALLAS_WaitConvertionTypeDef waitCondition);
|
||||||
/* Читает измеренную датчиком температуру */
|
/* Читает измеренную датчиком температуру */
|
||||||
HAL_StatusTypeDef Dallas_ReadTemperature(DALLAS_SensorHandleTypeDef *sensor);
|
HAL_StatusTypeDef Dallas_ReadTemperature(DALLAS_SensorHandleTypeDef *sensor);
|
||||||
/* Проверяет подключен ли датчик (чтение scratchpad) */
|
/* Проверяет подключен ли датчик (чтение scratchpad) */
|
||||||
HAL_StatusTypeDef Dallas_IsConnected(DALLAS_SensorHandleTypeDef *sensor);
|
HAL_StatusTypeDef Dallas_IsConnected(DALLAS_SensorHandleTypeDef *sensor);
|
||||||
/* Записывает пользовательские байты */
|
/* Записывает пользовательские байты */
|
||||||
HAL_StatusTypeDef Dallas_WriteUserBytes(DALLAS_SensorHandleTypeDef *sensor, uint16_t UserBytes12, uint16_t UserBytes34, uint8_t UserBytesMask);
|
HAL_StatusTypeDef Dallas_WriteUserBytes(DALLAS_SensorHandleTypeDef *sensor, uint16_t UserBytes12, uint16_t UserBytes34, uint8_t UserBytesMask);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -19,16 +19,16 @@
|
|||||||
//#define LL_Driver
|
//#define LL_Driver
|
||||||
#define CMSIS_Driver
|
#define CMSIS_Driver
|
||||||
/* OneWire Timings -----------------------------------------------------------*/
|
/* OneWire Timings -----------------------------------------------------------*/
|
||||||
#define ONEWIRE_RESET_PULSE_US 480 // Äëèòåëüíîñòü èìïóëüñà ñáðîñà
|
#define ONEWIRE_RESET_PULSE_US 480 // Длительность импульса сброса
|
||||||
#define ONEWIRE_PRESENCE_WAIT_US 70 // Îæèäàíèå îòâåòà îò äàò÷èêà
|
#define ONEWIRE_PRESENCE_WAIT_US 70 // Ожидание ответа от датчика
|
||||||
#define ONEWIRE_PRESENCE_DURATION_US 410 // Äëèòåëüíîñòü ñèãíàëà ïðèñóòñòâèÿ
|
#define ONEWIRE_PRESENCE_DURATION_US 410 // Длительность сигнала присутствия
|
||||||
|
|
||||||
#define ONEWIRE_WRITE_1_US 8 // Äëèòåëüíîñòü çàïèñè "1"
|
#define ONEWIRE_WRITE_1_US 8 // Длительность записи "1"
|
||||||
#define ONEWIRE_WRITE_0_US 57 // Äëèòåëüíîñòü çàïèñè "0"
|
#define ONEWIRE_WRITE_0_US 57 // Длительность записи "0"
|
||||||
#define ONEWIRE_READ_CMD_US 2 // Âðåìÿ êîììàíäû ÷òåíèÿ áèòà
|
#define ONEWIRE_READ_CMD_US 2 // Время комманды чтения бита
|
||||||
#define ONEWIRE_READ_DELAY_US 6 // Çàäåðæêà ïåðåä ñ÷èòûâàíèåì áèòà
|
#define ONEWIRE_READ_DELAY_US 6 // Задержка перед считыванием бита
|
||||||
#define ONEWIRE_COMMAND_SLOT_US 58 // Îáùåå âðåìÿ êîììàíäû OneWire
|
#define ONEWIRE_COMMAND_SLOT_US 58 // Общее время комманды OneWire
|
||||||
#define ONEWIRE_RECOVERY_TIME_US 1 // Âîññòàíîâëåíèå ïåðåä ñëåäóþùèì ñëîòîì
|
#define ONEWIRE_RECOVERY_TIME_US 1 // Восстановление перед следующим слотом
|
||||||
/* Common Register -----------------------------------------------------------*/
|
/* Common Register -----------------------------------------------------------*/
|
||||||
#define ONEWIRE_CMD_SEARCHROM 0xF0
|
#define ONEWIRE_CMD_SEARCHROM 0xF0
|
||||||
#define ONEWIRE_CMD_READROM 0x33
|
#define ONEWIRE_CMD_READROM 0x33
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file pch_sensors.c
|
* @file pch_sensors.c
|
||||||
* @brief Работа с датчиками температуры DS18B20 в ПЧ
|
* @brief Работа с датчиками температуры DS18B20 в ПЧ
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
@@ -192,7 +192,7 @@ HAL_StatusTypeDef PCHSens_FindUnknownSensors(PCHSens_DallasBusHandle *hbus)
|
|||||||
PCHSens_LocationTypeDef *param = (PCHSens_LocationTypeDef *)&hbus->hdallas->scratchpad.tHighRegister;
|
PCHSens_LocationTypeDef *param = (PCHSens_LocationTypeDef *)&hbus->hdallas->scratchpad.tHighRegister;
|
||||||
for(int i = 0; i < hbus->hdallas->onewire->RomCnt; i++)
|
for(int i = 0; i < hbus->hdallas->onewire->RomCnt; i++)
|
||||||
{
|
{
|
||||||
/* Проверка присутствует ли выбранный датчик на линии */
|
/* Проверка присутствует ли выбранный датчик на линии */
|
||||||
result = DS18B20_ReadScratchpad(hbus->hdallas->onewire, (uint8_t *)&DS.DevAddr[i], (uint8_t *)&hbus->hdallas->scratchpad);
|
result = DS18B20_ReadScratchpad(hbus->hdallas->onewire, (uint8_t *)&DS.DevAddr[i], (uint8_t *)&hbus->hdallas->scratchpad);
|
||||||
if(result != HAL_OK)
|
if(result != HAL_OK)
|
||||||
__NOP();
|
__NOP();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file pch_sensors.h
|
* @file pch_sensors.h
|
||||||
* @brief Работа с датчиками температуры DS18B20 в ПЧ
|
* @brief Работа с датчиками температуры DS18B20 в ПЧ
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
@@ -16,33 +16,33 @@
|
|||||||
/* Declarations and definitions ---------------------------------------------*/
|
/* Declarations and definitions ---------------------------------------------*/
|
||||||
#define USED_USER_BYTES DALLAS_USER_BYTE_12
|
#define USED_USER_BYTES DALLAS_USER_BYTE_12
|
||||||
|
|
||||||
/* Позиции параметров в UserBytes */
|
/* Позиции параметров в UserBytes */
|
||||||
#define REG_SENS_LOCATION_Pos (0) /*!< @brief Позиция параметра "Локация внутри модуля" */
|
#define REG_SENS_LOCATION_Pos (0) /*!< @brief Позиция параметра "Локация внутри модуля" */
|
||||||
|
|
||||||
#define REG_PCH_LOCATION_Pos (8) /*!< @brief Позиция параметра "Расположение в ПЧ" */
|
#define REG_PCH_LOCATION_Pos (8) /*!< @brief Позиция параметра "Расположение в ПЧ" */
|
||||||
#define REG_PCH_DIOD_PHASE_Pos (10) /*!< @brief Позиция параметра "Диодный или фазный модуль" @ref REG_PCH_LOCATION_Pos */
|
#define REG_PCH_DIOD_PHASE_Pos (10) /*!< @brief Позиция параметра "Диодный или фазный модуль" @ref REG_PCH_LOCATION_Pos */
|
||||||
#define REG_PCH_MODULE_NUMB_Pos (8) /*!< @brief Позиция параметра "Порядковый номер диодного/фазного модуля" @ref REG_PCH_LOCATION_Pos */
|
#define REG_PCH_MODULE_NUMB_Pos (8) /*!< @brief Позиция параметра "Порядковый номер диодного/фазного модуля" @ref REG_PCH_LOCATION_Pos */
|
||||||
|
|
||||||
#define REG_PCH_NUMB_Pos (11) /*!< @brief Позиция параметра "Преобразователь частоты" */
|
#define REG_PCH_NUMB_Pos (11) /*!< @brief Позиция параметра "Преобразователь частоты" */
|
||||||
#define REG_PCH_NUMB_DIGIT_1_Pos (13) /*!< @brief Позиция параметра "Первая цифра номера преобразователя частоты" @ref REG_PCH_NUMB_Pos */
|
#define REG_PCH_NUMB_DIGIT_1_Pos (13) /*!< @brief Позиция параметра "Первая цифра номера преобразователя частоты" @ref REG_PCH_NUMB_Pos */
|
||||||
#define REG_PCH_NUMB_DIGIT_2_Pos (11) /*!< @brief Позиция параметра "Вторая цифра номера преобразователя частоты" @ref REG_PCH_NUMB_Pos */
|
#define REG_PCH_NUMB_DIGIT_2_Pos (11) /*!< @brief Позиция параметра "Вторая цифра номера преобразователя частоты" @ref REG_PCH_NUMB_Pos */
|
||||||
|
|
||||||
#define REG_ZIP_Pos (15) /*!< @brief Позиция параметра "ЗИП/не ЗИП" */
|
#define REG_ZIP_Pos (15) /*!< @brief Позиция параметра "ЗИП/не ЗИП" */
|
||||||
|
|
||||||
/* Маски параметров в UserBytes */
|
/* Маски параметров в UserBytes */
|
||||||
#define REG_SENS_LOCATION_Mask ((uint16_t)0x3 << REG_SENS_LOCATION_Pos) /*!< @brief Маска параметра "Локация внутри модуля" */
|
#define REG_SENS_LOCATION_Mask ((uint16_t)0x3 << REG_SENS_LOCATION_Pos) /*!< @brief Маска параметра "Локация внутри модуля" */
|
||||||
|
|
||||||
#define REG_PCH_LOCATION_Mask ((uint16_t)0x7 << REG_PCH_LOCATION_Pos) /*!< @brief Маска параметра "Расположение в ПЧ" */
|
#define REG_PCH_LOCATION_Mask ((uint16_t)0x7 << REG_PCH_LOCATION_Pos) /*!< @brief Маска параметра "Расположение в ПЧ" */
|
||||||
#define REG_PCH_DIOD_PHASE_Mask ((uint16_t)0x1 << REG_PCH_DIOD_PHASE_Pos) /*!< @brief Маска параметра "Диодный или фазный модуль" */
|
#define REG_PCH_DIOD_PHASE_Mask ((uint16_t)0x1 << REG_PCH_DIOD_PHASE_Pos) /*!< @brief Маска параметра "Диодный или фазный модуль" */
|
||||||
#define REG_PCH_MODULE_NUMB_Mask ((uint16_t)0x3 << REG_PCH_MODULE_NUMB_Pos) /*!< @brief Маска параметра "Порядковый номер диодного/фазного модуля" */
|
#define REG_PCH_MODULE_NUMB_Mask ((uint16_t)0x3 << REG_PCH_MODULE_NUMB_Pos) /*!< @brief Маска параметра "Порядковый номер диодного/фазного модуля" */
|
||||||
|
|
||||||
#define REG_PCH_NUMB_Mask ((uint16_t)0xF << REG_PCH_NUMB_Pos) /*!< @brief Маска параметра "Преобразователь частоты" */
|
#define REG_PCH_NUMB_Mask ((uint16_t)0xF << REG_PCH_NUMB_Pos) /*!< @brief Маска параметра "Преобразователь частоты" */
|
||||||
#define REG_PCH_NUMB_DIGIT_1_Mask ((uint16_t)0x3 << REG_PCH_NUMB_DIGIT_1_Pos) /*!< @brief Маска параметра "Первая цифра номера преобразователя частоты" */
|
#define REG_PCH_NUMB_DIGIT_1_Mask ((uint16_t)0x3 << REG_PCH_NUMB_DIGIT_1_Pos) /*!< @brief Маска параметра "Первая цифра номера преобразователя частоты" */
|
||||||
#define REG_PCH_NUMB_DIGIT_2_Mask ((uint16_t)0x3 << REG_PCH_NUMB_DIGIT_2_Pos) /*!< @brief Маска параметра "Вторая цифра номера преобразователя частоты" */
|
#define REG_PCH_NUMB_DIGIT_2_Mask ((uint16_t)0x3 << REG_PCH_NUMB_DIGIT_2_Pos) /*!< @brief Маска параметра "Вторая цифра номера преобразователя частоты" */
|
||||||
|
|
||||||
#define REG_ZIP_Mask ((uint16_t)0x1 << REG_ZIP_Pos) /*!< @brief Маска параметра "ЗИП/не ЗИП" */
|
#define REG_ZIP_Mask ((uint16_t)0x1 << REG_ZIP_Pos) /*!< @brief Маска параметра "ЗИП/не ЗИП" */
|
||||||
|
|
||||||
/* Варианты параметров в UserBytes */
|
/* Варианты параметров в UserBytes */
|
||||||
#define REG_PCH_NUMB_11 ((1 << REG_PCH_NUMB_DIGIT_1_Pos) | (1 << REG_PCH_NUMB_DIGIT_2_Pos))
|
#define REG_PCH_NUMB_11 ((1 << REG_PCH_NUMB_DIGIT_1_Pos) | (1 << REG_PCH_NUMB_DIGIT_2_Pos))
|
||||||
#define REG_PCH_NUMB_12 ((1 << REG_PCH_NUMB_DIGIT_1_Pos) | (2 << REG_PCH_NUMB_DIGIT_2_Pos))
|
#define REG_PCH_NUMB_12 ((1 << REG_PCH_NUMB_DIGIT_1_Pos) | (2 << REG_PCH_NUMB_DIGIT_2_Pos))
|
||||||
#define REG_PCH_NUMB_13 ((1 << REG_PCH_NUMB_DIGIT_1_Pos) | (3 << REG_PCH_NUMB_DIGIT_2_Pos))
|
#define REG_PCH_NUMB_13 ((1 << REG_PCH_NUMB_DIGIT_1_Pos) | (3 << REG_PCH_NUMB_DIGIT_2_Pos))
|
||||||
@@ -57,20 +57,20 @@
|
|||||||
#define REG_PCH_PHASE_NUMB_2 ((1 << REG_PCH_DIOD_PHASE_Pos) | (2 << REG_PCH_MODULE_NUMB_Pos))
|
#define REG_PCH_PHASE_NUMB_2 ((1 << REG_PCH_DIOD_PHASE_Pos) | (2 << REG_PCH_MODULE_NUMB_Pos))
|
||||||
#define REG_PCH_PHASE_NUMB_3 ((1 << REG_PCH_DIOD_PHASE_Pos) | (3 << REG_PCH_MODULE_NUMB_Pos))
|
#define REG_PCH_PHASE_NUMB_3 ((1 << REG_PCH_DIOD_PHASE_Pos) | (3 << REG_PCH_MODULE_NUMB_Pos))
|
||||||
|
|
||||||
/* Получить параметр из UserBytes */
|
/* Получить параметр из UserBytes */
|
||||||
#define GET_REG_SENS_LOCATION(_REG_) ((_REG_) & REG_SENS_LOCATION_Mask) /*!< @brief Получить параметр "Локация внутри модуля" */
|
#define GET_REG_SENS_LOCATION(_REG_) ((_REG_) & REG_SENS_LOCATION_Mask) /*!< @brief Получить параметр "Локация внутри модуля" */
|
||||||
|
|
||||||
#define GET_REG_PCH_LOCATION(_REG_) ((_REG_) & REG_PCH_LOCATION_Mask) /*!< @brief Получить параметр "Расположение в ПЧ" */
|
#define GET_REG_PCH_LOCATION(_REG_) ((_REG_) & REG_PCH_LOCATION_Mask) /*!< @brief Получить параметр "Расположение в ПЧ" */
|
||||||
#define GET_REG_PCH_DIOD_PHASE(_REG_) ((_REG_) & REG_PCH_DIOD_PHASE_Mask) /*!< @brief Получить параметр "Диодный или фазный модуль" */
|
#define GET_REG_PCH_DIOD_PHASE(_REG_) ((_REG_) & REG_PCH_DIOD_PHASE_Mask) /*!< @brief Получить параметр "Диодный или фазный модуль" */
|
||||||
#define GET_REG_PCH_MODULE_NUMB(_REG_) ((_REG_) & REG_PCH_MODULE_NUMB_Mask) /*!< @brief Получить параметр "Порядковый номер диодного/фазного модуля" */
|
#define GET_REG_PCH_MODULE_NUMB(_REG_) ((_REG_) & REG_PCH_MODULE_NUMB_Mask) /*!< @brief Получить параметр "Порядковый номер диодного/фазного модуля" */
|
||||||
|
|
||||||
#define GET_REG_PCH_NUMB(_REG_) ((_REG_) & REG_PCH_NUMB_Mask) /*!< @brief Получить параметр "Преобразователь частоты" */
|
#define GET_REG_PCH_NUMB(_REG_) ((_REG_) & REG_PCH_NUMB_Mask) /*!< @brief Получить параметр "Преобразователь частоты" */
|
||||||
#define GET_REG_PCH_NUMB_DIGIT_1(_REG_) ((_REG_) & REG_PCH_NUMB_DIGIT_1_Mask) /*!< @brief Получить параметр "Первая цифра номера преобразователя частоты" */
|
#define GET_REG_PCH_NUMB_DIGIT_1(_REG_) ((_REG_) & REG_PCH_NUMB_DIGIT_1_Mask) /*!< @brief Получить параметр "Первая цифра номера преобразователя частоты" */
|
||||||
#define GET_REG_PCH_NUMB_DIGIT_2(_REG_) ((_REG_) & REG_PCH_NUMB_DIGIT_2_Mask) /*!< @brief Получить параметр "Вторая цифра номера преобразователя частоты" */
|
#define GET_REG_PCH_NUMB_DIGIT_2(_REG_) ((_REG_) & REG_PCH_NUMB_DIGIT_2_Mask) /*!< @brief Получить параметр "Вторая цифра номера преобразователя частоты" */
|
||||||
|
|
||||||
#define GET_REG_ZIP(_REG_) ((_REG_) & REG_ZIP_Mask) /*!< @brief Получить параметр "ЗИП/не ЗИП" */
|
#define GET_REG_ZIP(_REG_) ((_REG_) & REG_ZIP_Mask) /*!< @brief Получить параметр "ЗИП/не ЗИП" */
|
||||||
|
|
||||||
/* Диапазоны параметров из UserBytes */
|
/* Диапазоны параметров из UserBytes */
|
||||||
#define REG_SENS_LOCATION_MAX 3
|
#define REG_SENS_LOCATION_MAX 3
|
||||||
#define REG_SENS_LOCATION_MIN 0
|
#define REG_SENS_LOCATION_MIN 0
|
||||||
#define REG_PCH_DIOD_PHASE_MAX 1
|
#define REG_PCH_DIOD_PHASE_MAX 1
|
||||||
@@ -83,23 +83,23 @@
|
|||||||
#define REG_PCH_NUMB_DIGIT_2_MIN 1
|
#define REG_PCH_NUMB_DIGIT_2_MIN 1
|
||||||
|
|
||||||
|
|
||||||
/** @brief Получить параметр "Локация внутри модуля" */
|
/** @brief Получить параметр "Локация внутри модуля" */
|
||||||
#define IS_REG_SENS_LOCATION(_REG_) (((_REG_)->param.Location <= REG_SENS_LOCATION_MAX) && ((_REG_)->param.Location >= REG_SENS_LOCATION_MIN))
|
#define IS_REG_SENS_LOCATION(_REG_) (((_REG_)->param.Location <= REG_SENS_LOCATION_MAX) && ((_REG_)->param.Location >= REG_SENS_LOCATION_MIN))
|
||||||
|
|
||||||
/*!< @brief Получить параметр "Расположение в ПЧ" */
|
/*!< @brief Получить параметр "Расположение в ПЧ" */
|
||||||
#define IS_REG_PCH_LOCATION(_REG_) (IS_REG_PCH_DIOD_PHASE(_REG_) && IS_REG_PCH_MODULE_NUMB(_REG_))
|
#define IS_REG_PCH_LOCATION(_REG_) (IS_REG_PCH_DIOD_PHASE(_REG_) && IS_REG_PCH_MODULE_NUMB(_REG_))
|
||||||
/*!< @brief Получить параметр "Диодный или фазный модуль" */
|
/*!< @brief Получить параметр "Диодный или фазный модуль" */
|
||||||
#define IS_REG_PCH_DIOD_PHASE(_REG_) (((_REG_)->param.DiodeOrPhase <= REG_PCH_DIOD_PHASE_MAX) && ((_REG_)->param.DiodeOrPhase >= REG_PCH_DIOD_PHASE_MIN))
|
#define IS_REG_PCH_DIOD_PHASE(_REG_) (((_REG_)->param.DiodeOrPhase <= REG_PCH_DIOD_PHASE_MAX) && ((_REG_)->param.DiodeOrPhase >= REG_PCH_DIOD_PHASE_MIN))
|
||||||
/*!< @brief Получить параметр "Порядковый номер диодного/фазного модуля" */
|
/*!< @brief Получить параметр "Порядковый номер диодного/фазного модуля" */
|
||||||
#define IS_REG_PCH_MODULE_NUMB(_REG_) (((_REG_)->param.ModuleNumb <= REG_PCH_MODULE_NUMB_MAX) && ((_REG_)->param.ModuleNumb >= REG_PCH_MODULE_NUMB_MIN))
|
#define IS_REG_PCH_MODULE_NUMB(_REG_) (((_REG_)->param.ModuleNumb <= REG_PCH_MODULE_NUMB_MAX) && ((_REG_)->param.ModuleNumb >= REG_PCH_MODULE_NUMB_MIN))
|
||||||
|
|
||||||
/*!< @brief Получить параметр "Преобразователь частоты" */
|
/*!< @brief Получить параметр "Преобразователь частоты" */
|
||||||
#define IS_REG_PCH_NUMB(_REG_) (IS_REG_PCH_NUMB_DIGIT_1(_REG_) && IS_REG_PCH_NUMB_DIGIT_2(_REG_))
|
#define IS_REG_PCH_NUMB(_REG_) (IS_REG_PCH_NUMB_DIGIT_1(_REG_) && IS_REG_PCH_NUMB_DIGIT_2(_REG_))
|
||||||
/*!< @brief Получить параметр "Первая цифра номера преобразователя частоты" */
|
/*!< @brief Получить параметр "Первая цифра номера преобразователя частоты" */
|
||||||
#define IS_REG_PCH_NUMB_DIGIT_1(_REG_) (((_REG_)->param.PCHdig1 <= REG_PCH_NUMB_DIGIT_1_MAX) && ((_REG_)->param.PCHdig1 >= REG_PCH_NUMB_DIGIT_1_MIN))
|
#define IS_REG_PCH_NUMB_DIGIT_1(_REG_) (((_REG_)->param.PCHdig1 <= REG_PCH_NUMB_DIGIT_1_MAX) && ((_REG_)->param.PCHdig1 >= REG_PCH_NUMB_DIGIT_1_MIN))
|
||||||
/*!< @brief Получить параметр "Вторая цифра номера преобразователя частоты" s*/
|
/*!< @brief Получить параметр "Вторая цифра номера преобразователя частоты" s*/
|
||||||
#define IS_REG_PCH_NUMB_DIGIT_2(_REG_) (((_REG_)->param.PCHdig2 <= REG_PCH_NUMB_DIGIT_2_MAX) && ((_REG_)->param.PCHdig2 >= REG_PCH_NUMB_DIGIT_2_MIN))
|
#define IS_REG_PCH_NUMB_DIGIT_2(_REG_) (((_REG_)->param.PCHdig2 <= REG_PCH_NUMB_DIGIT_2_MAX) && ((_REG_)->param.PCHdig2 >= REG_PCH_NUMB_DIGIT_2_MIN))
|
||||||
/*!< @brief Получить параметр "ЗИП/не ЗИП" */
|
/*!< @brief Получить параметр "ЗИП/не ЗИП" */
|
||||||
#define IS_REG_ZIP(_REG_) (GET_REG_ZIP(_REG_))
|
#define IS_REG_ZIP(_REG_) (GET_REG_ZIP(_REG_))
|
||||||
|
|
||||||
typedef union
|
typedef union
|
||||||
|
|||||||
52
Core/Inc/iwdg.h
Normal file
52
Core/Inc/iwdg.h
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file iwdg.h
|
||||||
|
* @brief This file contains all the function prototypes for
|
||||||
|
* the iwdg.c file
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2024 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __IWDG_H__
|
||||||
|
#define __IWDG_H__
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "main.h"
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Includes */
|
||||||
|
|
||||||
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
|
extern IWDG_HandleTypeDef hiwdg;
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Private defines */
|
||||||
|
|
||||||
|
/* USER CODE END Private defines */
|
||||||
|
|
||||||
|
void MX_IWDG_Init(void);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Prototypes */
|
||||||
|
|
||||||
|
/* USER CODE END Prototypes */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __IWDG_H__ */
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
//#define HAL_COMP_MODULE_ENABLED
|
//#define HAL_COMP_MODULE_ENABLED
|
||||||
#define HAL_FLASH_MODULE_ENABLED
|
#define HAL_FLASH_MODULE_ENABLED
|
||||||
#define HAL_GPIO_MODULE_ENABLED
|
#define HAL_GPIO_MODULE_ENABLED
|
||||||
//#define HAL_IWDG_MODULE_ENABLED
|
#define HAL_IWDG_MODULE_ENABLED
|
||||||
#define HAL_TIM_MODULE_ENABLED
|
#define HAL_TIM_MODULE_ENABLED
|
||||||
//#define HAL_LPTIM_MODULE_ENABLED
|
//#define HAL_LPTIM_MODULE_ENABLED
|
||||||
#define HAL_PWR_MODULE_ENABLED
|
#define HAL_PWR_MODULE_ENABLED
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ typedef struct
|
|||||||
uint16_t Location;
|
uint16_t Location;
|
||||||
uint16_t ROM[4];
|
uint16_t ROM[4];
|
||||||
uint16_t Resolution;
|
uint16_t Resolution;
|
||||||
uint16_t Enable;
|
uint16_t Status;
|
||||||
}MB_SensorParamsTypeDef;
|
}MB_SensorParamsTypeDef;
|
||||||
/**
|
/**
|
||||||
* @brief Регистры хранения
|
* @brief Регистры хранения
|
||||||
@@ -124,7 +124,7 @@ typedef struct //MB_DataCoilsTypeDef
|
|||||||
#define C_CONTROL_QNT 3
|
#define C_CONTROL_QNT 3
|
||||||
|
|
||||||
#define C_FLAGS_ADDR 16
|
#define C_FLAGS_ADDR 16
|
||||||
#define C_FLAGS_QNT 5
|
#define C_FLAGS_QNT 2
|
||||||
|
|
||||||
/** MODBUS_DATA_COILS_DEFINES
|
/** MODBUS_DATA_COILS_DEFINES
|
||||||
* @}
|
* @}
|
||||||
|
|||||||
55
Core/Src/iwdg.c
Normal file
55
Core/Src/iwdg.c
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file iwdg.c
|
||||||
|
* @brief This file provides code for the configuration
|
||||||
|
* of the IWDG instances.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2024 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "iwdg.h"
|
||||||
|
|
||||||
|
/* USER CODE BEGIN 0 */
|
||||||
|
|
||||||
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
|
IWDG_HandleTypeDef hiwdg;
|
||||||
|
|
||||||
|
/* IWDG init function */
|
||||||
|
void MX_IWDG_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* USER CODE BEGIN IWDG_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE END IWDG_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE BEGIN IWDG_Init 1 */
|
||||||
|
|
||||||
|
/* USER CODE END IWDG_Init 1 */
|
||||||
|
hiwdg.Instance = IWDG;
|
||||||
|
hiwdg.Init.Prescaler = IWDG_PRESCALER_32;
|
||||||
|
hiwdg.Init.Reload = 100;
|
||||||
|
if (HAL_IWDG_Init(&hiwdg) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
/* USER CODE BEGIN IWDG_Init 2 */
|
||||||
|
|
||||||
|
/* USER CODE END IWDG_Init 2 */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
|
/* USER CODE END 1 */
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
#include "gpio.h"
|
#include "gpio.h"
|
||||||
#include "tim.h"
|
#include "tim.h"
|
||||||
#include "usart.h"
|
#include "usart.h"
|
||||||
|
#include "iwdg.h"
|
||||||
#include "pch_sensors.h"
|
#include "pch_sensors.h"
|
||||||
#include "rs_message.h"
|
#include "rs_message.h"
|
||||||
|
|
||||||
@@ -49,6 +50,7 @@ int main(void)
|
|||||||
/* System clock configuration */
|
/* System clock configuration */
|
||||||
APP_SystemClockConfig();
|
APP_SystemClockConfig();
|
||||||
|
|
||||||
|
MX_IWDG_Init();
|
||||||
MX_GPIO_Init();
|
MX_GPIO_Init();
|
||||||
MX_TIM1_Init();
|
MX_TIM1_Init();
|
||||||
MX_TIM14_Init();
|
MX_TIM14_Init();
|
||||||
|
|||||||
@@ -66,12 +66,13 @@ void SVC_Handler(void)
|
|||||||
void PendSV_Handler(void)
|
void PendSV_Handler(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
#include "iwdg.h"
|
||||||
/**
|
/**
|
||||||
* @brief This function handles System tick timer.
|
* @brief This function handles System tick timer.
|
||||||
*/
|
*/
|
||||||
void SysTick_Handler(void)
|
void SysTick_Handler(void)
|
||||||
{
|
{
|
||||||
|
HAL_IWDG_Refresh(&hiwdg);
|
||||||
HAL_IncTick();
|
HAL_IncTick();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,34 +30,34 @@ TIM_HandleTypeDef htim14;
|
|||||||
/* TIM3 init function */
|
/* TIM3 init function */
|
||||||
void MX_TIM1_Init(void)
|
void MX_TIM1_Init(void)
|
||||||
{
|
{
|
||||||
// Включение тактирования TIM1
|
// Включение тактирования TIM1
|
||||||
__HAL_RCC_TIM1_CLK_ENABLE();
|
__HAL_RCC_TIM1_CLK_ENABLE();
|
||||||
|
|
||||||
// Установка предделителя (Prescaler)
|
// Установка предделителя (Prescaler)
|
||||||
TIM1->PSC = 0;
|
TIM1->PSC = 0;
|
||||||
|
|
||||||
// Установка режима счета вверх
|
// Установка режима счета вверх
|
||||||
TIM1->CR1 &= ~TIM_CR1_DIR;
|
TIM1->CR1 &= ~TIM_CR1_DIR;
|
||||||
|
|
||||||
// Установка периода (ARR - Auto-reload register)
|
// Установка периода (ARR - Auto-reload register)
|
||||||
TIM1->ARR = 0xFFFFFFFF;
|
TIM1->ARR = 0xFFFFFFFF;
|
||||||
|
|
||||||
// Установка делителя частоты (Clock Division)
|
// Установка делителя частоты (Clock Division)
|
||||||
TIM1->CR1 &= ~TIM_CR1_CKD;
|
TIM1->CR1 &= ~TIM_CR1_CKD;
|
||||||
|
|
||||||
// Отключение режима предзагрузки
|
// Отключение режима предзагрузки
|
||||||
TIM1->CR1 &= ~TIM_CR1_ARPE;
|
TIM1->CR1 &= ~TIM_CR1_ARPE;
|
||||||
|
|
||||||
// Выбор внутреннего источника тактирования
|
// Выбор внутреннего источника тактирования
|
||||||
TIM1->SMCR &= ~TIM_SMCR_SMS;
|
TIM1->SMCR &= ~TIM_SMCR_SMS;
|
||||||
|
|
||||||
// Настройка триггерного выхода (TRGO)
|
// Настройка триггерного выхода (TRGO)
|
||||||
TIM1->CR2 &= ~TIM_CR2_MMS;
|
TIM1->CR2 &= ~TIM_CR2_MMS;
|
||||||
|
|
||||||
// Отключение режима Master/Slave
|
// Отключение режима Master/Slave
|
||||||
TIM1->SMCR &= ~TIM_SMCR_MSM;
|
TIM1->SMCR &= ~TIM_SMCR_MSM;
|
||||||
|
|
||||||
// Включение таймера
|
// Включение таймера
|
||||||
TIM1->CR1 |= TIM_CR1_CEN;
|
TIM1->CR1 |= TIM_CR1_CEN;
|
||||||
|
|
||||||
// /* USER CODE BEGIN TIM3_Init 0 */
|
// /* USER CODE BEGIN TIM3_Init 0 */
|
||||||
|
|||||||
@@ -449,6 +449,18 @@
|
|||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>..\Core\Src\iwdg.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>iwdg.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>2</GroupNumber>
|
||||||
|
<FileNumber>11</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>..\Core\Src\py32f002b_it.c</PathWithFileName>
|
<PathWithFileName>..\Core\Src\py32f002b_it.c</PathWithFileName>
|
||||||
<FilenameWithoutPath>py32f002b_it.c</FilenameWithoutPath>
|
<FilenameWithoutPath>py32f002b_it.c</FilenameWithoutPath>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
@@ -456,7 +468,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>2</GroupNumber>
|
<GroupNumber>2</GroupNumber>
|
||||||
<FileNumber>11</FileNumber>
|
<FileNumber>12</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -476,7 +488,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>3</GroupNumber>
|
<GroupNumber>3</GroupNumber>
|
||||||
<FileNumber>12</FileNumber>
|
<FileNumber>13</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -488,7 +500,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>3</GroupNumber>
|
<GroupNumber>3</GroupNumber>
|
||||||
<FileNumber>13</FileNumber>
|
<FileNumber>14</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -500,7 +512,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>3</GroupNumber>
|
<GroupNumber>3</GroupNumber>
|
||||||
<FileNumber>14</FileNumber>
|
<FileNumber>15</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -512,7 +524,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>3</GroupNumber>
|
<GroupNumber>3</GroupNumber>
|
||||||
<FileNumber>15</FileNumber>
|
<FileNumber>16</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -524,7 +536,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>3</GroupNumber>
|
<GroupNumber>3</GroupNumber>
|
||||||
<FileNumber>16</FileNumber>
|
<FileNumber>17</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -536,7 +548,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>3</GroupNumber>
|
<GroupNumber>3</GroupNumber>
|
||||||
<FileNumber>17</FileNumber>
|
<FileNumber>18</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -548,7 +560,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>3</GroupNumber>
|
<GroupNumber>3</GroupNumber>
|
||||||
<FileNumber>18</FileNumber>
|
<FileNumber>19</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -560,7 +572,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>3</GroupNumber>
|
<GroupNumber>3</GroupNumber>
|
||||||
<FileNumber>19</FileNumber>
|
<FileNumber>20</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -572,7 +584,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>3</GroupNumber>
|
<GroupNumber>3</GroupNumber>
|
||||||
<FileNumber>20</FileNumber>
|
<FileNumber>21</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -584,7 +596,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>3</GroupNumber>
|
<GroupNumber>3</GroupNumber>
|
||||||
<FileNumber>21</FileNumber>
|
<FileNumber>22</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -594,6 +606,18 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>3</GroupNumber>
|
||||||
|
<FileNumber>23</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_iwdg.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>py32f002b_hal_iwdg.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
@@ -604,7 +628,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>4</GroupNumber>
|
<GroupNumber>4</GroupNumber>
|
||||||
<FileNumber>22</FileNumber>
|
<FileNumber>24</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -616,7 +640,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>4</GroupNumber>
|
<GroupNumber>4</GroupNumber>
|
||||||
<FileNumber>23</FileNumber>
|
<FileNumber>25</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -628,7 +652,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>4</GroupNumber>
|
<GroupNumber>4</GroupNumber>
|
||||||
<FileNumber>24</FileNumber>
|
<FileNumber>26</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -640,7 +664,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>4</GroupNumber>
|
<GroupNumber>4</GroupNumber>
|
||||||
<FileNumber>25</FileNumber>
|
<FileNumber>27</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -652,7 +676,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>4</GroupNumber>
|
<GroupNumber>4</GroupNumber>
|
||||||
<FileNumber>26</FileNumber>
|
<FileNumber>28</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -664,7 +688,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>4</GroupNumber>
|
<GroupNumber>4</GroupNumber>
|
||||||
<FileNumber>27</FileNumber>
|
<FileNumber>29</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -676,7 +700,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>4</GroupNumber>
|
<GroupNumber>4</GroupNumber>
|
||||||
<FileNumber>28</FileNumber>
|
<FileNumber>30</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -688,7 +712,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>4</GroupNumber>
|
<GroupNumber>4</GroupNumber>
|
||||||
<FileNumber>29</FileNumber>
|
<FileNumber>31</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -700,7 +724,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>4</GroupNumber>
|
<GroupNumber>4</GroupNumber>
|
||||||
<FileNumber>30</FileNumber>
|
<FileNumber>32</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -712,7 +736,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>4</GroupNumber>
|
<GroupNumber>4</GroupNumber>
|
||||||
<FileNumber>31</FileNumber>
|
<FileNumber>33</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -732,7 +756,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>32</FileNumber>
|
<FileNumber>34</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -744,7 +768,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>33</FileNumber>
|
<FileNumber>35</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -756,7 +780,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>34</FileNumber>
|
<FileNumber>36</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -768,7 +792,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>35</FileNumber>
|
<FileNumber>37</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -780,7 +804,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>36</FileNumber>
|
<FileNumber>38</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -792,7 +816,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>37</FileNumber>
|
<FileNumber>39</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -812,7 +836,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>6</GroupNumber>
|
<GroupNumber>6</GroupNumber>
|
||||||
<FileNumber>38</FileNumber>
|
<FileNumber>40</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -824,7 +848,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>6</GroupNumber>
|
<GroupNumber>6</GroupNumber>
|
||||||
<FileNumber>39</FileNumber>
|
<FileNumber>41</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -836,7 +860,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>6</GroupNumber>
|
<GroupNumber>6</GroupNumber>
|
||||||
<FileNumber>40</FileNumber>
|
<FileNumber>42</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -848,7 +872,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>6</GroupNumber>
|
<GroupNumber>6</GroupNumber>
|
||||||
<FileNumber>41</FileNumber>
|
<FileNumber>43</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -860,7 +884,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>6</GroupNumber>
|
<GroupNumber>6</GroupNumber>
|
||||||
<FileNumber>42</FileNumber>
|
<FileNumber>44</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -872,7 +896,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>6</GroupNumber>
|
<GroupNumber>6</GroupNumber>
|
||||||
<FileNumber>43</FileNumber>
|
<FileNumber>45</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -884,7 +908,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>6</GroupNumber>
|
<GroupNumber>6</GroupNumber>
|
||||||
<FileNumber>44</FileNumber>
|
<FileNumber>46</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -896,7 +920,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>6</GroupNumber>
|
<GroupNumber>6</GroupNumber>
|
||||||
<FileNumber>45</FileNumber>
|
<FileNumber>47</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
|||||||
@@ -435,6 +435,11 @@
|
|||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>..\Core\Src\usart.c</FilePath>
|
<FilePath>..\Core\Src\usart.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>iwdg.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\Core\Src\iwdg.c</FilePath>
|
||||||
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>py32f002b_it.c</FileName>
|
<FileName>py32f002b_it.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
@@ -500,6 +505,11 @@
|
|||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c</FilePath>
|
<FilePath>..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>py32f002b_hal_iwdg.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_iwdg.c</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
|||||||
Reference in New Issue
Block a user