Browse Source

解决帕尔贴IO输出模式错误的bug和PWM5输出反相的bug

master
sunzhaowei 2 years ago
parent
commit
8fd4f85700
  1. 3
      app/Core/Inc/stm32f4xx_it.h
  2. 42
      app/Core/Src/gpio.c
  3. 1
      app/Core/Src/stm32f4xx_it.c
  4. 2
      app/Core/Src/tim.c
  5. 196
      app/MDK-ARM/app.uvguix.sunzh
  6. 2
      app/MDK-ARM/app.uvprojx
  7. 63
      app/app.ioc
  8. 2
      dep/libiflytop_micro
  9. 18
      src/board/hardware.cpp

3
app/Core/Inc/stm32f4xx_it.h

@ -55,13 +55,10 @@ void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void EXTI3_IRQHandler(void);
void CAN1_TX_IRQHandler(void);
void CAN1_RX0_IRQHandler(void);
void CAN1_RX1_IRQHandler(void);
void CAN1_SCE_IRQHandler(void);
void EXTI9_5_IRQHandler(void);
void EXTI15_10_IRQHandler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */

42
app/Core/Src/gpio.c

@ -69,12 +69,12 @@ void MX_GPIO_Init(void)
/*Configure GPIO pins : PC13 PC14 PC15 PC0
PC1 PC2 PC3 PC4
PC5 PC6 PC10 PC11
PC12 */
PC5 PC6 PC7 PC10
PC11 PC12 */
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0
|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4
|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_10|GPIO_PIN_11
|GPIO_PIN_12;
|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7|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);
@ -100,29 +100,17 @@ void MX_GPIO_Init(void)
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pins : PD8 PD9 PD10 PD11
PD13 PD15 PD0 PD1
PD2 PD4 PD5 PD6
PD7 */
PD12 PD13 PD15 PD0
PD1 PD2 PD3 PD4
PD5 PD6 PD7 */
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
|GPIO_PIN_13|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1
|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6
|GPIO_PIN_7;
|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_15|GPIO_PIN_0
|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4
|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/*Configure GPIO pins : PD12 PD3 */
GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/*Configure GPIO pin : PC7 */
GPIO_InitStruct.Pin = GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pin : PC9 */
GPIO_InitStruct.Pin = GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@ -131,16 +119,6 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF0_MCO;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI3_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI3_IRQn);
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
}
/* USER CODE BEGIN 2 */

1
app/Core/Src/stm32f4xx_it.c

@ -254,7 +254,6 @@ void CAN1_SCE_IRQHandler(void)
/* USER CODE END CAN1_SCE_IRQn 1 */
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */

2
app/Core/Src/tim.c

@ -330,7 +330,7 @@ void MX_TIM8_Init(void)
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCPolarity = TIM_OCPOLARITY_LOW;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;

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

2
app/MDK-ARM/app.uvprojx

@ -10,7 +10,7 @@
<TargetName>app</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>6190000::V6.19::ARMCLANG</pCCUsed>
<pCCUsed>5060960::V5.06 update 7 (build 960)::.\AC506u7</pCCUsed>
<uAC6>0</uAC6>
<TargetOption>
<TargetCommonOption>

63
app/app.ioc

@ -43,33 +43,30 @@ Mcu.Name=STM32F407V(E-G)Tx
Mcu.Package=LQFP100
Mcu.Pin0=PH0-OSC_IN
Mcu.Pin1=PH1-OSC_OUT
Mcu.Pin10=PC9
Mcu.Pin11=PA9
Mcu.Pin12=PA10
Mcu.Pin13=PA11
Mcu.Pin14=PA12
Mcu.Pin15=PA13
Mcu.Pin16=PA14
Mcu.Pin17=PD3
Mcu.Pin18=PB3
Mcu.Pin19=PB6
Mcu.Pin10=PA10
Mcu.Pin11=PA11
Mcu.Pin12=PA12
Mcu.Pin13=PA13
Mcu.Pin14=PA14
Mcu.Pin15=PB3
Mcu.Pin16=PB6
Mcu.Pin17=PB7
Mcu.Pin18=VP_CRC_VS_CRC
Mcu.Pin19=VP_RNG_VS_RNG
Mcu.Pin2=PA5
Mcu.Pin20=PB7
Mcu.Pin21=VP_CRC_VS_CRC
Mcu.Pin22=VP_RNG_VS_RNG
Mcu.Pin23=VP_SYS_VS_Systick
Mcu.Pin24=VP_TIM1_VS_ClockSourceINT
Mcu.Pin25=VP_TIM3_VS_ClockSourceINT
Mcu.Pin26=VP_TIM6_VS_ClockSourceINT
Mcu.Pin27=VP_TIM7_VS_ClockSourceINT
Mcu.Pin20=VP_SYS_VS_Systick
Mcu.Pin21=VP_TIM1_VS_ClockSourceINT
Mcu.Pin22=VP_TIM3_VS_ClockSourceINT
Mcu.Pin23=VP_TIM6_VS_ClockSourceINT
Mcu.Pin24=VP_TIM7_VS_ClockSourceINT
Mcu.Pin3=PA6
Mcu.Pin4=PA7
Mcu.Pin5=PE9
Mcu.Pin6=PD12
Mcu.Pin7=PD14
Mcu.Pin8=PC7
Mcu.Pin9=PC8
Mcu.PinsNb=28
Mcu.Pin6=PD14
Mcu.Pin7=PC8
Mcu.Pin8=PC9
Mcu.Pin9=PA9
Mcu.PinsNb=25
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F407VETx
@ -81,9 +78,6 @@ NVIC.CAN1_RX1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.CAN1_SCE_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.CAN1_TX_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.EXTI15_10_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.EXTI3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.EXTI9_5_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
@ -116,6 +110,8 @@ PA7.Signal=SPI1_MOSI
PA9.Locked=true
PA9.Mode=Asynchronous
PA9.Signal=USART1_TX
PB3.GPIOParameters=GPIO_ModeDefaultPP
PB3.GPIO_ModeDefaultPP=GPIO_MODE_AF_PP
PB3.Locked=true
PB3.Signal=S_TIM2_CH2
PB6.Locked=true
@ -124,19 +120,13 @@ PB6.Signal=I2C1_SCL
PB7.Locked=true
PB7.Mode=I2C
PB7.Signal=I2C1_SDA
PC7.Locked=true
PC7.Signal=GPXTI7
PC8.Locked=true
PC8.Signal=S_TIM8_CH3
PC9.Locked=true
PC9.Mode=Clock-out-2
PC9.Signal=RCC_MCO_2
PD12.Locked=true
PD12.Signal=GPXTI12
PD14.Locked=true
PD14.Signal=S_TIM4_CH3
PD3.Locked=true
PD3.Signal=GPXTI3
PE9.GPIOParameters=GPIO_ModeDefaultPP,GPIO_PuPd
PE9.GPIO_ModeDefaultPP=GPIO_MODE_AF_PP
PE9.GPIO_PuPd=GPIO_PULLDOWN
@ -215,12 +205,6 @@ RCC.VCOI2SOutputFreq_Value=128000000
RCC.VCOInputFreq_Value=2000000
RCC.VCOOutputFreq_Value=288000000
RCC.VcooutputI2S=64000000
SH.GPXTI12.0=GPIO_EXTI12
SH.GPXTI12.ConfNb=1
SH.GPXTI3.0=GPIO_EXTI3
SH.GPXTI3.ConfNb=1
SH.GPXTI7.0=GPIO_EXTI7
SH.GPXTI7.ConfNb=1
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
@ -259,7 +243,8 @@ TIM6.Prescaler=81
TIM7.IPParameters=Prescaler
TIM7.Prescaler=81
TIM8.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
TIM8.IPParameters=Channel-PWM Generation3 CH3
TIM8.IPParameters=Channel-PWM Generation3 CH3,OCPolarity_3
TIM8.OCPolarity_3=TIM_OCPOLARITY_LOW
USART1.IPParameters=VirtualMode
USART1.VirtualMode=VM_ASYNC
VP_CRC_VS_CRC.Mode=CRC_Activate

2
dep/libiflytop_micro

@ -1 +1 @@
Subproject commit f11e7c14fe9c778d5ee87d85a8626c52e6253354
Subproject commit b20587ffa86f4dd670c5383301847f61b429a748

18
src/board/hardware.cpp

@ -40,7 +40,7 @@ void Hardware::periodicJob() {
* *
*******************************************************************************/
void Hardware::debug_light_init() {
STM32_HAL::gpioInit(DEBUG_LIGHT_PORT, DEBUG_LIGHT_PIN, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
STM32_HAL::gpioInitAsOutput(DEBUG_LIGHT_PORT, DEBUG_LIGHT_PIN, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
}
void Hardware::debug_light_periodicJob() {
@ -108,11 +108,11 @@ void Hardware::fan_init(int freq) {
STM32_HAL::setPWMFreq(&htim8, freq); // fan5
// fan0 fan1 fan2 fan3
STM32_HAL::gpioInit(GPIOC, GPIO_PIN_0, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
STM32_HAL::gpioInitAsOutput(GPIOC, GPIO_PIN_0, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
// fan4
STM32_HAL::gpioInit(GPIOC, GPIO_PIN_2, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
STM32_HAL::gpioInitAsOutput(GPIOC, GPIO_PIN_2, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
// fan5
STM32_HAL::gpioInit(GPIOC, GPIO_PIN_3, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
STM32_HAL::gpioInitAsOutput(GPIOC, GPIO_PIN_3, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
/**
* @brief
@ -249,8 +249,8 @@ void Hardware::peltier_hot_ctr_pwm(int pwm) {
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);
}
void Hardware::peltier_init() { //
STM32_HAL::gpioInit(GPIOB, GPIO_PIN_1, GPIO_MODE_AF_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
STM32_HAL::gpioInit(GPIOE, GPIO_PIN_10, GPIO_MODE_AF_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
STM32_HAL::gpioInitAsOutput(GPIOB, GPIO_PIN_1, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
STM32_HAL::gpioInitAsOutput(GPIOE, GPIO_PIN_10, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
}
int Hardware::peltier_get_pwm() { return m_peltier.pwm; }
@ -311,11 +311,11 @@ void Hardware::peltier_periodicJob() {
* tmc芯片驱动相关 *
*******************************************************************************/
void Hardware::tmc_init() {
STM32_HAL::gpioInit( //
STM32_HAL::gpioInitAsOutput( //
GPIOA, GPIO_PIN_4, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_LOW, GPIO_PIN_SET);
STM32_HAL::gpioInit( //
STM32_HAL::gpioInitAsOutput( //
GPIOE, GPIO_PIN_12, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_LOW, GPIO_PIN_SET);
STM32_HAL::gpioInit( //
STM32_HAL::gpioInitAsOutput( //
GPIOE, GPIO_PIN_11, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_LOW, GPIO_PIN_SET);
/**

Loading…
Cancel
Save