Browse Source

update

master
zhaohe 2 years ago
parent
commit
b855d0a3be
  1. 4
      .vscode/settings.json
  2. 3
      app/Core/Inc/tim.h
  3. 51
      app/Core/Src/gpio.c
  4. 1
      app/Core/Src/main.c
  5. 242
      app/Core/Src/tim.c
  6. 50
      app/MDK-ARM/app.uvguix.h_zha
  7. 11
      app/MDK-ARM/app.uvoptx
  8. 110
      app/app.ioc
  9. 52
      src/port.cpp
  10. 5
      src/port.hpp
  11. 28
      src/umain.cpp

4
.vscode/settings.json

@ -20,6 +20,8 @@
"functional": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp"
"utility": "cpp",
"string": "cpp",
"string_view": "cpp"
}
}

3
app/Core/Inc/tim.h

@ -32,6 +32,8 @@ extern "C" {
/* USER CODE END Includes */
extern TIM_HandleTypeDef htim1;
extern TIM_HandleTypeDef htim2;
extern TIM_HandleTypeDef htim3;
@ -46,6 +48,7 @@ extern TIM_HandleTypeDef htim7;
/* USER CODE END Private defines */
void MX_TIM1_Init(void);
void MX_TIM2_Init(void);
void MX_TIM3_Init(void);
void MX_TIM4_Init(void);

51
app/Core/Src/gpio.c

@ -62,33 +62,31 @@ void MX_GPIO_Init(void)
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_8, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1|GPIO_PIN_6|GPIO_PIN_7, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_11|GPIO_PIN_12, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_8|GPIO_PIN_10, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_11|GPIO_PIN_12, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6|GPIO_PIN_7, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6, GPIO_PIN_RESET);
/*Configure GPIO pins : PE2 PE3 PE4 PE5
PE6 PE7 PE9 PE10
PE13 PE14 PE15 PE0
PE1 */
PE6 PE7 PE13 PE14
PE15 PE0 PE1 */
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_9|GPIO_PIN_10
|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0
|GPIO_PIN_1;
|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_13|GPIO_PIN_14
|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
/*Configure GPIO pins : PC13 PC14 PC15 PC10
PC11 PC12 */
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_10
|GPIO_PIN_11|GPIO_PIN_12;
/*Configure GPIO pins : PC13 PC14 PC15 PC8
PC10 PC11 PC12 */
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_8
|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
@ -123,20 +121,25 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pins : PB0 PB1 PB2 PB10
PB11 PB12 PB13 PB14
PB15 PB4 PB5 PB8
PB9 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_10
|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
|GPIO_PIN_15|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_8
|GPIO_PIN_9;
/*Configure GPIO pin : PB1 */
GPIO_InitStruct.Pin = GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pins : PB2 PB10 PB11 PB12
PB13 PB14 PB15 PB4
PB5 PB8 PB9 */
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12
|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_4
|GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pins : PE8 PE11 PE12 */
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_11|GPIO_PIN_12;
/*Configure GPIO pins : PE8 PE10 PE11 PE12 */
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;

1
app/Core/Src/main.c

@ -102,6 +102,7 @@ int main(void)
MX_TIM7_Init();
MX_SPI1_Init();
MX_TIM6_Init();
MX_TIM1_Init();
/* USER CODE BEGIN 2 */
extern int umain(int argc, char const *argv[]);
char const argv[1]={NULL};

242
app/Core/Src/tim.c

@ -24,12 +24,83 @@
/* USER CODE END 0 */
TIM_HandleTypeDef htim1;
TIM_HandleTypeDef htim2;
TIM_HandleTypeDef htim3;
TIM_HandleTypeDef htim4;
TIM_HandleTypeDef htim6;
TIM_HandleTypeDef htim7;
/* TIM1 init function */
void MX_TIM1_Init(void)
{
/* USER CODE BEGIN TIM1_Init 0 */
/* USER CODE END TIM1_Init 0 */
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
TIM_OC_InitTypeDef sConfigOC = {0};
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};
/* USER CODE BEGIN TIM1_Init 1 */
/* USER CODE END TIM1_Init 1 */
htim1.Instance = TIM1;
htim1.Init.Prescaler = 143;
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
htim1.Init.Period = 9999;
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim1.Init.RepetitionCounter = 0;
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_PWM_Init(&htim1) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
sBreakDeadTimeConfig.DeadTime = 0;
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM1_Init 2 */
/* USER CODE END TIM1_Init 2 */
HAL_TIM_MspPostInit(&htim1);
}
/* TIM2 init function */
void MX_TIM2_Init(void)
{
@ -82,6 +153,7 @@ void MX_TIM3_Init(void)
/* USER CODE END TIM3_Init 0 */
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
TIM_OC_InitTypeDef sConfigOC = {0};
@ -89,11 +161,20 @@ void MX_TIM3_Init(void)
/* USER CODE END TIM3_Init 1 */
htim3.Instance = TIM3;
htim3.Init.Prescaler = 0;
htim3.Init.Prescaler = 71;
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
htim3.Init.Period = 65535;
htim3.Init.Period = 9999;
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_PWM_Init(&htim3) != HAL_OK)
{
Error_Handler();
@ -229,21 +310,21 @@ void MX_TIM7_Init(void)
}
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* tim_pwmHandle)
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{
if(tim_pwmHandle->Instance==TIM2)
if(tim_baseHandle->Instance==TIM1)
{
/* USER CODE BEGIN TIM2_MspInit 0 */
/* USER CODE BEGIN TIM1_MspInit 0 */
/* USER CODE END TIM2_MspInit 0 */
/* TIM2 clock enable */
__HAL_RCC_TIM2_CLK_ENABLE();
/* USER CODE BEGIN TIM2_MspInit 1 */
/* USER CODE END TIM1_MspInit 0 */
/* TIM1 clock enable */
__HAL_RCC_TIM1_CLK_ENABLE();
/* USER CODE BEGIN TIM1_MspInit 1 */
/* USER CODE END TIM2_MspInit 1 */
/* USER CODE END TIM1_MspInit 1 */
}
else if(tim_pwmHandle->Instance==TIM3)
else if(tim_baseHandle->Instance==TIM3)
{
/* USER CODE BEGIN TIM3_MspInit 0 */
@ -254,23 +335,7 @@ void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* tim_pwmHandle)
/* USER CODE END TIM3_MspInit 1 */
}
else if(tim_pwmHandle->Instance==TIM4)
{
/* USER CODE BEGIN TIM4_MspInit 0 */
/* USER CODE END TIM4_MspInit 0 */
/* TIM4 clock enable */
__HAL_RCC_TIM4_CLK_ENABLE();
/* USER CODE BEGIN TIM4_MspInit 1 */
/* USER CODE END TIM4_MspInit 1 */
}
}
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{
if(tim_baseHandle->Instance==TIM6)
else if(tim_baseHandle->Instance==TIM6)
{
/* USER CODE BEGIN TIM6_MspInit 0 */
@ -293,15 +358,63 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
/* USER CODE END TIM7_MspInit 1 */
}
}
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* tim_pwmHandle)
{
if(tim_pwmHandle->Instance==TIM2)
{
/* USER CODE BEGIN TIM2_MspInit 0 */
/* USER CODE END TIM2_MspInit 0 */
/* TIM2 clock enable */
__HAL_RCC_TIM2_CLK_ENABLE();
/* USER CODE BEGIN TIM2_MspInit 1 */
/* USER CODE END TIM2_MspInit 1 */
}
else if(tim_pwmHandle->Instance==TIM4)
{
/* USER CODE BEGIN TIM4_MspInit 0 */
/* USER CODE END TIM4_MspInit 0 */
/* TIM4 clock enable */
__HAL_RCC_TIM4_CLK_ENABLE();
/* USER CODE BEGIN TIM4_MspInit 1 */
/* USER CODE END TIM4_MspInit 1 */
}
}
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(timHandle->Instance==TIM2)
if(timHandle->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspPostInit 0 */
/* USER CODE END TIM1_MspPostInit 0 */
__HAL_RCC_GPIOE_CLK_ENABLE();
/**TIM1 GPIO Configuration
PE9 ------> TIM1_CH1
*/
GPIO_InitStruct.Pin = GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
/* USER CODE BEGIN TIM1_MspPostInit 1 */
/* USER CODE END TIM1_MspPostInit 1 */
}
else if(timHandle->Instance==TIM2)
{
/* USER CODE BEGIN TIM2_MspPostInit 0 */
/* USER CODE END TIM2_MspPostInit 0 */
__HAL_RCC_GPIOB_CLK_ENABLE();
/**TIM2 GPIO Configuration
PB3 ------> TIM2_CH2
@ -323,16 +436,16 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
/* USER CODE END TIM3_MspPostInit 0 */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/**TIM3 GPIO Configuration
PC8 ------> TIM3_CH3
PB0 ------> TIM3_CH3
*/
GPIO_InitStruct.Pin = GPIO_PIN_8;
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE BEGIN TIM3_MspPostInit 1 */
@ -362,21 +475,21 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
}
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* tim_pwmHandle)
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
{
if(tim_pwmHandle->Instance==TIM2)
if(tim_baseHandle->Instance==TIM1)
{
/* USER CODE BEGIN TIM2_MspDeInit 0 */
/* USER CODE BEGIN TIM1_MspDeInit 0 */
/* USER CODE END TIM2_MspDeInit 0 */
/* USER CODE END TIM1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM2_CLK_DISABLE();
/* USER CODE BEGIN TIM2_MspDeInit 1 */
__HAL_RCC_TIM1_CLK_DISABLE();
/* USER CODE BEGIN TIM1_MspDeInit 1 */
/* USER CODE END TIM2_MspDeInit 1 */
/* USER CODE END TIM1_MspDeInit 1 */
}
else if(tim_pwmHandle->Instance==TIM3)
else if(tim_baseHandle->Instance==TIM3)
{
/* USER CODE BEGIN TIM3_MspDeInit 0 */
@ -387,23 +500,7 @@ void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* tim_pwmHandle)
/* USER CODE END TIM3_MspDeInit 1 */
}
else if(tim_pwmHandle->Instance==TIM4)
{
/* USER CODE BEGIN TIM4_MspDeInit 0 */
/* USER CODE END TIM4_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM4_CLK_DISABLE();
/* USER CODE BEGIN TIM4_MspDeInit 1 */
/* USER CODE END TIM4_MspDeInit 1 */
}
}
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
{
if(tim_baseHandle->Instance==TIM6)
else if(tim_baseHandle->Instance==TIM6)
{
/* USER CODE BEGIN TIM6_MspDeInit 0 */
@ -427,6 +524,33 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
}
}
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* tim_pwmHandle)
{
if(tim_pwmHandle->Instance==TIM2)
{
/* USER CODE BEGIN TIM2_MspDeInit 0 */
/* USER CODE END TIM2_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM2_CLK_DISABLE();
/* USER CODE BEGIN TIM2_MspDeInit 1 */
/* USER CODE END TIM2_MspDeInit 1 */
}
else if(tim_pwmHandle->Instance==TIM4)
{
/* USER CODE BEGIN TIM4_MspDeInit 0 */
/* USER CODE END TIM4_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM4_CLK_DISABLE();
/* USER CODE BEGIN TIM4_MspDeInit 1 */
/* USER CODE END TIM4_MspDeInit 1 */
}
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */

50
app/MDK-ARM/app.uvguix.h_zha
File diff suppressed because it is too large
View File

11
app/MDK-ARM/app.uvoptx

@ -103,7 +103,7 @@
<bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>4</nTsel>
<nTsel>3</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
@ -114,11 +114,16 @@
<tDlgDll></tDlgDll>
<tDlgPa></tDlgPa>
<tIfile></tIfile>
<pMon>Segger\JL2CM3.dll</pMon>
<pMon>BIN\CMSIS_AGDI.dll</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>CMSIS_AGDI</Key>
<Name>-X"Any" -UAny -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F407VETx$CMSIS\Flash\STM32F4xx_512.FLM)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key>
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
</SetRegEntry>
@ -140,7 +145,7 @@
<SetRegEntry>
<Number>0</Number>
<Key>JL2CM3</Key>
<Name>-U23520538 -O78 -S5 -ZTIFSpeedSel1000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F407VETx$CMSIS\Flash\STM32F4xx_512.FLM)</Name>
<Name>-U23520538 -O78 -S5 -ZTIFSpeedSel1000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST2 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F407VETx$CMSIS\Flash\STM32F4xx_512.FLM)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>

110
app/app.ioc

@ -9,60 +9,66 @@ Mcu.CPN=STM32F407VET6
Mcu.Family=STM32F4
Mcu.IP0=CRC
Mcu.IP1=NVIC
Mcu.IP10=TIM7
Mcu.IP11=USART1
Mcu.IP10=TIM6
Mcu.IP11=TIM7
Mcu.IP12=USART1
Mcu.IP2=RCC
Mcu.IP3=RNG
Mcu.IP4=SPI1
Mcu.IP5=SYS
Mcu.IP6=TIM2
Mcu.IP7=TIM3
Mcu.IP8=TIM4
Mcu.IP9=TIM6
Mcu.IPNb=12
Mcu.IP6=TIM1
Mcu.IP7=TIM2
Mcu.IP8=TIM3
Mcu.IP9=TIM4
Mcu.IPNb=13
Mcu.Name=STM32F407V(E-G)Tx
Mcu.Package=LQFP100
Mcu.Pin0=PH0-OSC_IN
Mcu.Pin1=PH1-OSC_OUT
Mcu.Pin10=PC4
Mcu.Pin11=PC5
Mcu.Pin12=PE8
Mcu.Pin13=PE11
Mcu.Pin14=PE12
Mcu.Pin15=PD14
Mcu.Pin16=PC6
Mcu.Pin17=PC7
Mcu.Pin18=PC8
Mcu.Pin19=PC9
Mcu.Pin12=PB0
Mcu.Pin13=PB1
Mcu.Pin14=PE8
Mcu.Pin15=PE9
Mcu.Pin16=PE10
Mcu.Pin17=PE11
Mcu.Pin18=PE12
Mcu.Pin19=PD14
Mcu.Pin2=PC0
Mcu.Pin20=PA9
Mcu.Pin21=PA10
Mcu.Pin22=PA13
Mcu.Pin23=PA14
Mcu.Pin24=PD0
Mcu.Pin25=PD1
Mcu.Pin26=PD2
Mcu.Pin27=PD3
Mcu.Pin28=PD4
Mcu.Pin29=PD5
Mcu.Pin20=PC6
Mcu.Pin21=PC7
Mcu.Pin22=PC9
Mcu.Pin23=PA9
Mcu.Pin24=PA10
Mcu.Pin25=PA13
Mcu.Pin26=PA14
Mcu.Pin27=PD0
Mcu.Pin28=PD1
Mcu.Pin29=PD2
Mcu.Pin3=PC1
Mcu.Pin30=PD6
Mcu.Pin31=PD7
Mcu.Pin32=PB3
Mcu.Pin33=PB6
Mcu.Pin34=PB7
Mcu.Pin35=VP_CRC_VS_CRC
Mcu.Pin36=VP_RNG_VS_RNG
Mcu.Pin37=VP_SYS_VS_Systick
Mcu.Pin38=VP_TIM6_VS_ClockSourceINT
Mcu.Pin39=VP_TIM7_VS_ClockSourceINT
Mcu.Pin30=PD3
Mcu.Pin31=PD4
Mcu.Pin32=PD5
Mcu.Pin33=PD6
Mcu.Pin34=PD7
Mcu.Pin35=PB3
Mcu.Pin36=PB6
Mcu.Pin37=PB7
Mcu.Pin38=VP_CRC_VS_CRC
Mcu.Pin39=VP_RNG_VS_RNG
Mcu.Pin4=PC2
Mcu.Pin40=VP_SYS_VS_Systick
Mcu.Pin41=VP_TIM1_VS_ClockSourceINT
Mcu.Pin42=VP_TIM3_VS_ClockSourceINT
Mcu.Pin43=VP_TIM6_VS_ClockSourceINT
Mcu.Pin44=VP_TIM7_VS_ClockSourceINT
Mcu.Pin5=PC3
Mcu.Pin6=PA4
Mcu.Pin7=PA5
Mcu.Pin8=PA6
Mcu.Pin9=PA7
Mcu.PinsNb=40
Mcu.PinsNb=45
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F407VETx
@ -99,6 +105,13 @@ PA7.Signal=SPI1_MOSI
PA9.Locked=true
PA9.Mode=Asynchronous
PA9.Signal=USART1_TX
PB0.GPIOParameters=GPIO_ModeDefaultPP,GPIO_PuPd
PB0.GPIO_ModeDefaultPP=GPIO_MODE_AF_PP
PB0.GPIO_PuPd=GPIO_PULLDOWN
PB0.Locked=true
PB0.Signal=S_TIM3_CH3
PB1.Locked=true
PB1.Signal=GPIO_Output
PB3.Locked=true
PB3.Signal=S_TIM2_CH2
PB6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_ModeDefaultOutputPP
@ -129,8 +142,6 @@ PC6.Locked=true
PC6.Signal=GPIO_Input
PC7.Locked=true
PC7.Signal=GPIO_Input
PC8.Locked=true
PC8.Signal=S_TIM3_CH3
PC9.Locked=true
PC9.Mode=Clock-out-2
PC9.Signal=RCC_MCO_2
@ -152,6 +163,8 @@ PD6.Locked=true
PD6.Signal=GPIO_Output
PD7.Locked=true
PD7.Signal=GPIO_Input
PE10.Locked=true
PE10.Signal=GPIO_Output
PE11.GPIOParameters=PinState
PE11.Locked=true
PE11.PinState=GPIO_PIN_SET
@ -162,6 +175,11 @@ PE12.PinState=GPIO_PIN_SET
PE12.Signal=GPIO_Output
PE8.Locked=true
PE8.Signal=GPIO_Output
PE9.GPIOParameters=GPIO_ModeDefaultPP,GPIO_PuPd
PE9.GPIO_ModeDefaultPP=GPIO_MODE_AF_PP
PE9.GPIO_PuPd=GPIO_PULLDOWN
PE9.Locked=true
PE9.Signal=S_TIM1_CH1
PH0-OSC_IN.Mode=HSE-External-Oscillator
PH0-OSC_IN.Signal=RCC_OSC_IN
PH1-OSC_OUT.Mode=HSE-External-Oscillator
@ -194,7 +212,7 @@ ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=MDK-ARM V5.32
ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_TIM2_Init-TIM2-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_TIM4_Init-TIM4-false-HAL-true,7-MX_CRC_Init-CRC-false-HAL-true,8-MX_RNG_Init-RNG-false-HAL-true,9-MX_TIM7_Init-TIM7-false-HAL-true,10-MX_SPI1_Init-SPI1-false-HAL-true,11-MX_TIM6_Init-TIM6-false-HAL-true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_TIM2_Init-TIM2-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_TIM4_Init-TIM4-false-HAL-true,7-MX_CRC_Init-CRC-false-HAL-true,8-MX_RNG_Init-RNG-false-HAL-true,9-MX_TIM7_Init-TIM7-false-HAL-true,10-MX_SPI1_Init-SPI1-false-HAL-true,11-MX_TIM6_Init-TIM6-false-HAL-true,12-MX_TIM1_Init-TIM1-false-HAL-true
RCC.48MHZClocksFreq_Value=48000000
RCC.AHBFreq_Value=144000000
RCC.APB1CLKDivider=RCC_HCLK_DIV4
@ -235,6 +253,8 @@ RCC.VCOI2SOutputFreq_Value=128000000
RCC.VCOInputFreq_Value=2000000
RCC.VCOOutputFreq_Value=288000000
RCC.VcooutputI2S=64000000
SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1
SH.S_TIM1_CH1.ConfNb=1
SH.S_TIM2_CH2.0=TIM2_CH2,PWM Generation2 CH2
SH.S_TIM2_CH2.ConfNb=1
SH.S_TIM3_CH3.0=TIM3_CH3,PWM Generation3 CH3
@ -247,6 +267,10 @@ SPI1.Direction=SPI_DIRECTION_2LINES
SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler
SPI1.Mode=SPI_MODE_MASTER
SPI1.VirtualType=VM_MASTER
TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
TIM1.IPParameters=Channel-PWM Generation1 CH1,Period,Prescaler
TIM1.Period=9999
TIM1.Prescaler=143
TIM2.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
TIM2.IPParameters=Channel-PWM Generation2 CH2,Prescaler,Period,Pulse-PWM Generation2 CH2,OCPolarity_2
TIM2.OCPolarity_2=TIM_OCPOLARITY_LOW
@ -254,7 +278,9 @@ TIM2.Period=1000-1
TIM2.Prescaler=72-1
TIM2.Pulse-PWM\ Generation2\ CH2=200
TIM3.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
TIM3.IPParameters=Channel-PWM Generation3 CH3
TIM3.IPParameters=Channel-PWM Generation3 CH3,Prescaler,Period
TIM3.Period=9999
TIM3.Prescaler=71
TIM4.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
TIM4.IPParameters=Channel-PWM Generation3 CH3,Prescaler,Period,Pulse-PWM Generation3 CH3,OCPolarity_3
TIM4.OCPolarity_3=TIM_OCPOLARITY_LOW
@ -273,6 +299,10 @@ VP_RNG_VS_RNG.Mode=RNG_Activate
VP_RNG_VS_RNG.Signal=RNG_VS_RNG
VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
VP_TIM1_VS_ClockSourceINT.Mode=Internal
VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
VP_TIM3_VS_ClockSourceINT.Mode=Internal
VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT
VP_TIM6_VS_ClockSourceINT.Mode=Enable_Timer
VP_TIM6_VS_ClockSourceINT.Signal=TIM6_VS_ClockSourceINT
VP_TIM7_VS_ClockSourceINT.Mode=Enable_Timer

52
src/port.cpp

@ -77,3 +77,55 @@ int32_t port_tmc4361_get_version(uint8_t channel) {
return value;
}
#endif
// PE9 COLD_CTR_PWM0
static void port_peltier_cold_ctr_pwm(int pwm) {
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, pwm);
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
}
// PB0 HOT_CTR_PWM0
static void port_peltier_hot_ctr_pwm(int pwm) {
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_3, pwm);
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);
}
void port_peltier_set_pwm(int pwm) {
/**
* @brief
*
*
* HOT_CTR_PWM0(AL) = 0
* HOT_CTR(AH) = 0
* COLD_CTR_PWM0(BL) = 0
* COLD_CTR(BH) = 0
*
* HOT_CTR_PWM0(AL) = 1(PWM)
* HOT_CTR(AH) = 0
* COLD_CTR_PWM0(BL) = 0
* COLD_CTR(BH) = 1(IO/)
*
* HOT_CTR_PWM0(AL) = 0
* HOT_CTR(AH) = 1(IO/)
* COLD_CTR_PWM0(BL) = 1(PWM)
* COLD_CTR(BH) = 0
*/
pwm = pwm * 100;
if (pwm == 0) {
port_peltier_hot_ctr_pwm(0); /*HOT_CTR_PWM0*/
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); /*HOT_CTR*/
port_peltier_cold_ctr_pwm(0); /*COLD_CTR_PWM0*/
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_10, GPIO_PIN_RESET); /*COLD_CTR*/
} else if (pwm > 0) {
port_peltier_hot_ctr_pwm(pwm); /*HOT_CTR_PWM0*/
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); /*HOT_CTR*/
port_peltier_cold_ctr_pwm(0); /*COLD_CTR_PWM0*/
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_10, GPIO_PIN_SET); /*COLD_CTR*/
} else {
port_peltier_hot_ctr_pwm(0); /*HOT_CTR_PWM0*/
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); /*HOT_CTR*/
port_peltier_cold_ctr_pwm(-pwm); /*COLD_CTR_PWM0*/
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_10, GPIO_PIN_RESET); /*COLD_CTR*/
}
}

5
src/port.hpp

@ -15,3 +15,8 @@ void port_tmc_ENN_pin_set_state(uint8_t channel, bool state);
void port_tmc_nRESET_pin_set_state(uint8_t channel, bool state);
int32_t port_tmc4361_get_version(uint8_t channel);
/*******************************************************************************
* *
*******************************************************************************/
void port_peltier_set_pwm(int pwm);

28
src/umain.cpp

@ -41,10 +41,7 @@ class TMC2160Impl : public TMC2160 {
static TMC4361AImpl tmc4361motor1;
static TMC2160Impl tmc2160motor1;
extern "C" {
int umain(int argc, char const *argv[]) {
sys_loggger_enable(true);
ZLOGI(TAG, "VERSION:%s", VERSION);
void initmotor() {
port_tmc_extern_clk_enable();
// tmc4361motor1.init();
@ -82,14 +79,29 @@ int umain(int argc, char const *argv[]) {
tmc4361motor1.setMaximumAcceleration(300000);
tmc4361motor1.setMaximumDeceleration(300000);
tmc4361motor1.moveTo(8000000, 1000000);
}
extern "C" {
int umain(int argc, char const *argv[]) {
#if 1
sys_loggger_enable(true);
ZLOGI(TAG, "VERSION:%s", VERSION);
// port_peltier_set_pwm(30);
port_peltier_set_pwm(0);
while (true) {
port_do_debug_light_state();
HAL_Delay(30);
int32_t encpos = tmc4361motor1.getENC_POS();
int32_t xactual = tmc4361motor1.getXACTUAL();
ZLOGI(TAG, "encpos:%d xactual:%d %d", encpos, xactual, tmc4361motor1.getENC_POS_DEV());
// HAL_Delay(30);
// 打印电机当前位置
// int32_t encpos = tmc4361motor1.getENC_POS();
// int32_t xactual = tmc4361motor1.getXACTUAL();
// ZLOGI(TAG, "encpos:%d xactual:%d %d", encpos, xactual, tmc4361motor1.getENC_POS_DEV());
}
#endif
return 0;
}
}
Loading…
Cancel
Save