This commit is contained in:
andrey 2025-06-27 16:40:42 +03:00
parent a27b6bcb50
commit 62906c6685
13 changed files with 150 additions and 106 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "external_flash_eeprom"]
path = external_flash_eeprom
url = https://git.arktika.cyou/set506/external_flash_eeprom.git

1
external_flash_eeprom Submodule

@ -0,0 +1 @@
Subproject commit 6ec779c11dab4a2cdee38930058e51ae1bb8939a

View File

@ -112,7 +112,7 @@ struct _SensorHandleStruct
float set_temp;
int hyst;
uint16_t hyst;
DALLAS_HandleTypeDef *hdallas;
uint64_t sensROM; ///< ROM-код датчика

View File

@ -63,7 +63,7 @@ typedef struct
/* USER CODE BEGIN ET */
#define reset_blink_delay 50
#define rest_iter 10
#define GPIOB11_valve MB_DATA.Coils.coils.state_val_bit.state_val_01
#define GPIOB11_valve MB_DATA.Coils.coils[0].state_val_bit.state_val_01
@ -96,6 +96,8 @@ void Error_Handler(void);
/* USER CODE END EFP */
/* Private defines -----------------------------------------------------------*/
#define One_wire_Pin GPIO_PIN_15
#define One_wire_GPIO_Port GPIOA
/* USER CODE BEGIN Private defines */

View File

@ -55,6 +55,7 @@ void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void RTC_IRQHandler(void);
void TIM1_BRK_IRQHandler(void);
void TIM1_UP_IRQHandler(void);
void TIM1_TRG_COM_IRQHandler(void);

View File

@ -53,7 +53,7 @@ void MX_GPIO_Init(void)
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4
|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8
|GPIO_PIN_9|GPIO_PIN_10, GPIO_PIN_RESET);
|GPIO_PIN_9|GPIO_PIN_10|One_wire_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_10
@ -68,10 +68,10 @@ void MX_GPIO_Init(void)
/*Configure GPIO pins : PA1 PA2 PA3 PA4
PA5 PA6 PA7 PA8
PA9 PA10 */
PA9 PA10 PAPin */
GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4
|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8
|GPIO_PIN_9|GPIO_PIN_10;
|GPIO_PIN_9|GPIO_PIN_10|One_wire_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;

View File

@ -58,7 +58,7 @@ uint16_t iter,cnt=5;
float temperature;
extern uint8_t roms[MAX_DEVICES][8];
//extern uint8_t devices_found ;
uint8_t init=1;
uint8_t _debug_init=1;
//TEMP temp_sense[30];
float set_temp_old[30];
char rx_buffer[64];
@ -144,8 +144,8 @@ int main(void)
sens[i].Init.InitParam.Ind = i;
sens[i].Init.init_func = &Dallas_SensorInitByInd;
sens[i].Init.Resolution = DALLAS_CONFIG_9_BITS;
MB_DATA.HoldRegs.set_Temp[i] =sens[i].set_temp =20.;
sens[i].hyst =3;
MB_DATA.HoldRegs.set_Temp[i] =sens[i].set_temp =20.;
MB_DATA.HoldRegs.set_hyst[i]=sens[i].hyst =1;
Dallas_AddNewSensors(&hdallas, &sens[i]);
}
@ -155,22 +155,23 @@ int main(void)
/* USER CODE BEGIN WHILE */
while (1)
{
if (init)
if (_debug_init||MB_DATA.Coils.init_param)
{
init=0;
_debug_init=0;
MB_DATA.Coils.init_param=0;
for(int i=0;i<hdallas.onewire->RomCnt;i++)
{
MB_DATA.HoldRegs.set_Temp[i]=21;
sens[i].set_temp=MB_DATA.HoldRegs.set_Temp[i];
sens[i].hyst=MB_DATA.HoldRegs.set_hyst[i];
}
// init_all_T_sense();
//DS18B20_Search(&DS, &OW);
}
init=MB_DATA.Coils.init_param;
Dallas_StartConvertTAll(&hdallas,DALLAS_WAIT_BUS,0);
for(int i=0;i<hdallas.onewire->RomCnt;i++)
@ -187,7 +188,7 @@ int main(void)
{
MB_DATA.Coils.coils.all|=1<<i;
MB_DATA.Coils.coils[0].all|=1<<i;
}
@ -196,7 +197,7 @@ int main(void)
if (sens[i].temperature>sens[i].set_temp+sens[i].hyst)
{
MB_DATA.Coils.coils.all&=~(1<<i);
MB_DATA.Coils.coils[0].all&=~(1<<i);
}
if(GPIOB11_valve)

View File

@ -36,7 +36,6 @@ void MX_RTC_Init(void)
RTC_TimeTypeDef sTime = {0};
RTC_DateTypeDef DateToUpdate = {0};
RTC_TamperTypeDef sTamper = {0};
/* USER CODE BEGIN RTC_Init 1 */
@ -46,7 +45,7 @@ void MX_RTC_Init(void)
*/
hrtc.Instance = RTC;
hrtc.Init.AsynchPrediv = RTC_AUTO_1_SECOND;
hrtc.Init.OutPut = RTC_OUTPUTSOURCE_NONE;
hrtc.Init.OutPut = RTC_OUTPUTSOURCE_SECOND;
if (HAL_RTC_Init(&hrtc) != HAL_OK)
{
Error_Handler();
@ -58,32 +57,24 @@ void MX_RTC_Init(void)
/** Initialize RTC and set the Time and Date
*/
sTime.Hours = 0x0;
sTime.Minutes = 0x0;
sTime.Seconds = 0x0;
if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK)
{
Error_Handler();
}
DateToUpdate.WeekDay = RTC_WEEKDAY_MONDAY;
DateToUpdate.Month = RTC_MONTH_JANUARY;
DateToUpdate.Date = 0x1;
DateToUpdate.Year = 0x0;
// sTime.Hours = 0x0;
// sTime.Minutes = 0x0;
// sTime.Seconds = 0x0;
if (HAL_RTC_SetDate(&hrtc, &DateToUpdate, RTC_FORMAT_BCD) != HAL_OK)
{
Error_Handler();
}
// // if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK)
// {
// Error_Handler();
// }
// DateToUpdate.WeekDay = RTC_WEEKDAY_MONDAY;
// DateToUpdate.Month = RTC_MONTH_JANUARY;
// DateToUpdate.Date = 0x1;
// DateToUpdate.Year = 0x0;
/** Enable the RTC Tamper
*/
sTamper.Tamper = RTC_TAMPER_1;
sTamper.Trigger = RTC_TAMPERTRIGGER_LOWLEVEL;
if (HAL_RTCEx_SetTamper(&hrtc, &sTamper) != HAL_OK)
{
Error_Handler();
}
// if (HAL_RTC_SetDate(&hrtc, &DateToUpdate, RTC_FORMAT_BCD) != HAL_OK)
// {
// Error_Handler();
// }
/* USER CODE BEGIN RTC_Init 2 */
/* USER CODE END RTC_Init 2 */
@ -103,6 +94,10 @@ void HAL_RTC_MspInit(RTC_HandleTypeDef* rtcHandle)
__HAL_RCC_BKP_CLK_ENABLE();
/* RTC clock enable */
__HAL_RCC_RTC_ENABLE();
/* RTC interrupt Init */
HAL_NVIC_SetPriority(RTC_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(RTC_IRQn);
/* USER CODE BEGIN RTC_MspInit 1 */
/* USER CODE END RTC_MspInit 1 */
@ -119,6 +114,9 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* rtcHandle)
/* USER CODE END RTC_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_RTC_DISABLE();
/* RTC interrupt Deinit */
HAL_NVIC_DisableIRQ(RTC_IRQn);
/* USER CODE BEGIN RTC_MspDeInit 1 */
/* USER CODE END RTC_MspDeInit 1 */

View File

@ -56,6 +56,7 @@
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
extern RTC_HandleTypeDef hrtc;
extern TIM_HandleTypeDef htim1;
extern TIM_HandleTypeDef htim2;
extern UART_HandleTypeDef huart1;
@ -203,6 +204,20 @@ void SysTick_Handler(void)
/* please refer to the startup file (startup_stm32f1xx.s). */
/******************************************************************************/
/**
* @brief This function handles RTC global interrupt.
*/
void RTC_IRQHandler(void)
{
/* USER CODE BEGIN RTC_IRQn 0 */
/* USER CODE END RTC_IRQn 0 */
HAL_RTCEx_RTCIRQHandler(&hrtc);
/* USER CODE BEGIN RTC_IRQn 1 */
/* USER CODE END RTC_IRQn 1 */
}
/**
* @brief This function handles TIM1 break interrupt.
*/

View File

@ -145,7 +145,7 @@
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U37FF71064E57343625581443 -O2254 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(1BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL08000 -FP0($$Device:STM32F103C6$Flash\STM32F10x_128.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2</Name>
<Name>-U37FF71064E57343625581443 -O2254 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(1BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL08000 -FP0($$Device:STM32F103C6$Flash\STM32F10x_128.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
@ -168,52 +168,52 @@
<Ww>
<count>3</count>
<WinNumber>1</WinNumber>
<ItemText>MB_DATA,0x0A</ItemText>
<ItemText>hmodbus1</ItemText>
</Ww>
<Ww>
<count>4</count>
<WinNumber>1</WinNumber>
<ItemText>hmodbus1</ItemText>
<ItemText>hiwdg</ItemText>
</Ww>
<Ww>
<count>5</count>
<WinNumber>1</WinNumber>
<ItemText>hiwdg</ItemText>
<ItemText>OW</ItemText>
</Ww>
<Ww>
<count>6</count>
<WinNumber>1</WinNumber>
<ItemText>OW</ItemText>
<ItemText>_debug_init</ItemText>
</Ww>
<Ww>
<count>7</count>
<WinNumber>1</WinNumber>
<ItemText>init</ItemText>
<ItemText>htim1,0x0A</ItemText>
</Ww>
<Ww>
<count>8</count>
<WinNumber>1</WinNumber>
<ItemText>htim1,0x0A</ItemText>
<ItemText>DS18B20_DEVICE_AMOUNT</ItemText>
</Ww>
<Ww>
<count>9</count>
<WinNumber>1</WinNumber>
<ItemText>DS18B20_DEVICE_AMOUNT</ItemText>
<ItemText>set_temp_old</ItemText>
</Ww>
<Ww>
<count>10</count>
<WinNumber>1</WinNumber>
<ItemText>set_temp_old</ItemText>
<ItemText>hrtc.Instance,0x0A</ItemText>
</Ww>
<Ww>
<count>11</count>
<WinNumber>1</WinNumber>
<ItemText>MB_DATA.Coils.coils</ItemText>
<ItemText>\\john103C6T6\../Modbus/modbus.c\MB_DATA,0x0A</ItemText>
</Ww>
<Ww>
<count>12</count>
<WinNumber>1</WinNumber>
<ItemText>hrtc.Instance,0x0A</ItemText>
<ItemText>sTime</ItemText>
</Ww>
</WatchWindow1>
<WatchWindow2>
@ -266,6 +266,10 @@
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<SystemViewers>
<Entry>
<Name>System Viewer\BKP</Name>
<WinId>35895</WinId>
</Entry>
<Entry>
<Name>System Viewer\GPIOA</Name>
<WinId>35904</WinId>
@ -274,6 +278,10 @@
<Name>System Viewer\GPIOB</Name>
<WinId>35900</WinId>
</Entry>
<Entry>
<Name>System Viewer\GPIOC</Name>
<WinId>35896</WinId>
</Entry>
<Entry>
<Name>System Viewer\IWDG</Name>
<WinId>35905</WinId>
@ -391,7 +399,7 @@
<GroupNumber>2</GroupNumber>
<FileNumber>6</FileNumber>
<FileType>1</FileType>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Src\ow_port.c</PathWithFileName>

View File

@ -133,12 +133,12 @@
<UseTargetDll>1</UseTargetDll>
<UseExternalTool>0</UseExternalTool>
<RunIndependent>0</RunIndependent>
<UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
<Capability>1</Capability>
<DriverSelection>4101</DriverSelection>
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2V8M.DLL</Flash2>
<Flash2>STLink\ST-LINKIII-KEIL_SWO.dll</Flash2>
<Flash3>"" ()</Flash3>
<Flash4></Flash4>
<pFcarmOut></pFcarmOut>

View File

@ -64,16 +64,17 @@ typedef struct //MB_DataInRegsTypeDef
typedef struct //MB_DataInRegsTypeDef
{
uint16_t set_Temp[MAX_SENSE];
uint16_t set_hyst[MAX_SENSE];
}MB_DataHoldRegsTypeDef;
// DEFINES FOR INPUT REGISTERS ARRAYS
#define R_INPUT_ADDR 0
#define R_INPUT_QNT 10
#define R_INPUT_QNT 40
// DEFINES FOR HOLDING REGISTERS ARRAYS
#define R_HOLDING_ADDR 0
#define R_HOLDING_QNT 10
#define R_HOLDING_QNT 40
/** MODBUS_DATA_RERISTERS_DEFINES
@ -110,7 +111,7 @@ typedef struct //MB_DataInRegsTypeDef
*/
typedef union
{
struct {
struct __packed {
unsigned state_val_01:1;
unsigned state_val_02:1;
unsigned state_val_03:1;
@ -132,11 +133,11 @@ typedef union
}word;
typedef struct //MB_DataCoilsTypeDef
typedef struct //MB_DataCoilsTypeDef
{
word coils;
word coils[2];
unsigned init_param:1;
unsigned reserved:15;
@ -144,7 +145,7 @@ typedef struct //MB_DataCoilsTypeDef
// DEFINES FOR COIL ARRAYS
#define C_CONTROL_ADDR 0
#define C_CONTROL_QNT 16
#define C_CONTROL_QNT 100
/** MODBUS_DATA_COILS_DEFINES
* @}

View File

@ -33,47 +33,50 @@ Mcu.IPNb=11
Mcu.Name=STM32F103C(4-6)Tx
Mcu.Package=LQFP48
Mcu.Pin0=PC13-TAMPER-RTC
Mcu.Pin1=PD0-OSC_IN
Mcu.Pin10=PA7
Mcu.Pin11=PB0
Mcu.Pin12=PB1
Mcu.Pin13=PB2
Mcu.Pin14=PB10
Mcu.Pin15=PB11
Mcu.Pin16=PB12
Mcu.Pin17=PB13
Mcu.Pin18=PB14
Mcu.Pin19=PB15
Mcu.Pin2=PD1-OSC_OUT
Mcu.Pin20=PA8
Mcu.Pin21=PA9
Mcu.Pin22=PA10
Mcu.Pin23=PA11
Mcu.Pin24=PA12
Mcu.Pin25=PA13
Mcu.Pin26=PA14
Mcu.Pin27=PB3
Mcu.Pin28=PB4
Mcu.Pin29=PB5
Mcu.Pin3=PA0-WKUP
Mcu.Pin30=PB6
Mcu.Pin31=PB7
Mcu.Pin32=PB8
Mcu.Pin33=PB9
Mcu.Pin34=VP_ADC1_TempSens_Input
Mcu.Pin35=VP_ADC1_Vref_Input
Mcu.Pin36=VP_RTC_VS_RTC_Activate
Mcu.Pin37=VP_RTC_VS_RTC_Calendar
Mcu.Pin38=VP_SYS_VS_tim3
Mcu.Pin39=VP_TIM1_VS_ClockSourceINT
Mcu.Pin4=PA1
Mcu.Pin40=VP_TIM2_VS_ClockSourceINT
Mcu.Pin5=PA2
Mcu.Pin6=PA3
Mcu.Pin7=PA4
Mcu.Pin8=PA5
Mcu.Pin9=PA6
Mcu.PinsNb=41
Mcu.Pin1=PC14-OSC32_IN
Mcu.Pin10=PA5
Mcu.Pin11=PA6
Mcu.Pin12=PA7
Mcu.Pin13=PB0
Mcu.Pin14=PB1
Mcu.Pin15=PB2
Mcu.Pin16=PB10
Mcu.Pin17=PB11
Mcu.Pin18=PB12
Mcu.Pin19=PB13
Mcu.Pin2=PC15-OSC32_OUT
Mcu.Pin20=PB14
Mcu.Pin21=PB15
Mcu.Pin22=PA8
Mcu.Pin23=PA9
Mcu.Pin24=PA10
Mcu.Pin25=PA11
Mcu.Pin26=PA12
Mcu.Pin27=PA13
Mcu.Pin28=PA14
Mcu.Pin29=PA15
Mcu.Pin3=PD0-OSC_IN
Mcu.Pin30=PB3
Mcu.Pin31=PB4
Mcu.Pin32=PB5
Mcu.Pin33=PB6
Mcu.Pin34=PB7
Mcu.Pin35=PB8
Mcu.Pin36=PB9
Mcu.Pin37=VP_ADC1_TempSens_Input
Mcu.Pin38=VP_ADC1_Vref_Input
Mcu.Pin39=VP_RTC_VS_RTC_Activate
Mcu.Pin4=PD1-OSC_OUT
Mcu.Pin40=VP_RTC_VS_RTC_Calendar
Mcu.Pin41=VP_SYS_VS_tim3
Mcu.Pin42=VP_TIM1_VS_ClockSourceINT
Mcu.Pin43=VP_TIM2_VS_ClockSourceINT
Mcu.Pin5=PA0-WKUP
Mcu.Pin6=PA1
Mcu.Pin7=PA2
Mcu.Pin8=PA3
Mcu.Pin9=PA4
Mcu.PinsNb=44
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F103C6Tx
@ -87,6 +90,7 @@ NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.RTC_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
NVIC.TIM1_BRK_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
@ -113,6 +117,10 @@ PA13.Mode=Serial_Wire
PA13.Signal=SYS_JTMS-SWDIO
PA14.Mode=Serial_Wire
PA14.Signal=SYS_JTCK-SWCLK
PA15.GPIOParameters=GPIO_Label
PA15.GPIO_Label=One_wire
PA15.Locked=true
PA15.Signal=GPIO_Output
PA2.Locked=true
PA2.Signal=GPIO_Output
PA3.Locked=true
@ -161,8 +169,12 @@ PB8.Mode=I2C
PB8.Signal=I2C1_SCL
PB9.Mode=I2C
PB9.Signal=I2C1_SDA
PC13-TAMPER-RTC.Mode=Tamper
PC13-TAMPER-RTC.Signal=RTC_TAMPER
PC13-TAMPER-RTC.Mode=RTC OUT
PC13-TAMPER-RTC.Signal=RTC_OUT
PC14-OSC32_IN.Mode=LSE-External-Oscillator
PC14-OSC32_IN.Signal=RCC_OSC32_IN
PC15-OSC32_OUT.Mode=LSE-External-Oscillator
PC15-OSC32_OUT.Signal=RCC_OSC32_OUT
PD0-OSC_IN.Mode=HSE-External-Oscillator
PD0-OSC_IN.Signal=RCC_OSC_IN
PD1-OSC_OUT.Mode=HSE-External-Oscillator
@ -198,7 +210,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_TIM1_Init-TIM1-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM2_Init-TIM2-false-HAL-true,6-MX_ADC1_Init-ADC1-false-HAL-true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_TIM1_Init-TIM1-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM2_Init-TIM2-false-HAL-true,6-MX_ADC1_Init-ADC1-false-HAL-true,7-MX_CAN_Init-CAN-false-HAL-true,8-MX_I2C1_Init-I2C1-false-HAL-true,9-MX_RTC_Init-RTC-false-HAL-true,10-MX_SPI1_Init-SPI1-false-HAL-true
RCC.ADCFreqValue=12000000
RCC.ADCPresc=RCC_ADCPCLK2_DIV6
RCC.AHBFreq_Value=72000000
@ -222,6 +234,8 @@ RCC.TimSysFreq_Value=72000000
RCC.USBFreq_Value=48000000
RCC.USBPrescaler=RCC_USBCLKSOURCE_PLL_DIV1_5
RCC.VCOOutput2Freq_Value=8000000
RTC.IPParameters=OutPut
RTC.OutPut=RTC_OUTPUTSOURCE_SECOND
SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_2
SPI1.CalculateBaudRate=36.0 MBits/s
SPI1.Direction=SPI_DIRECTION_2LINES