Compare commits

...

7 Commits
master ... dev

  1. 2
      Inc/stm32f4xx_it.h
  2. 79
      LWIP.ioc
  3. 31
      MDK-ARM/LWIP.uvguix.29643
  4. 52
      MDK-ARM/LWIP.uvoptx
  5. 1088
      MDK-ARM/LWIP.uvprojx
  6. 1
      Src/gpio.c
  7. 30
      Src/stm32f4xx_it.c
  8. 191
      Src/tim.c
  9. 2
      usersrc/encoder.c
  10. 51
      usersrc/usermain.c

2
Inc/stm32f4xx_it.h

@ -54,7 +54,9 @@ void UsageFault_Handler(void);
void DebugMon_Handler(void);
void EXTI2_IRQHandler(void);
void TIM1_UP_TIM10_IRQHandler(void);
void TIM4_IRQHandler(void);
void USART1_IRQHandler(void);
void TIM8_CC_IRQHandler(void);
void TIM6_DAC_IRQHandler(void);
void ETH_IRQHandler(void);
/* USER CODE BEGIN EFP */

79
LWIP.ioc

@ -55,31 +55,34 @@ Mcu.Pin1=PE3
Mcu.Pin10=PA7
Mcu.Pin11=PC4
Mcu.Pin12=PC5
Mcu.Pin13=PD12
Mcu.Pin14=PD13
Mcu.Pin15=PC6
Mcu.Pin16=PC7
Mcu.Pin17=PA9
Mcu.Pin18=PA10
Mcu.Pin19=PA13
Mcu.Pin13=PB0
Mcu.Pin14=PB1
Mcu.Pin15=PD12
Mcu.Pin16=PD13
Mcu.Pin17=PC7
Mcu.Pin18=PC8
Mcu.Pin19=PA9
Mcu.Pin2=PE4
Mcu.Pin20=PA14
Mcu.Pin21=PD3
Mcu.Pin22=PG11
Mcu.Pin23=PG13
Mcu.Pin24=PG14
Mcu.Pin25=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin26=VP_LWIP_VS_Enabled
Mcu.Pin27=VP_SYS_VS_tim1
Mcu.Pin28=VP_TIM6_VS_ClockSourceINT
Mcu.Pin20=PA10
Mcu.Pin21=PA13
Mcu.Pin22=PA14
Mcu.Pin23=PD3
Mcu.Pin24=PG11
Mcu.Pin25=PG13
Mcu.Pin26=PG14
Mcu.Pin27=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin28=VP_LWIP_VS_Enabled
Mcu.Pin29=VP_SYS_VS_tim1
Mcu.Pin3=PF9
Mcu.Pin30=VP_TIM4_VS_ClockSourceINT
Mcu.Pin31=VP_TIM6_VS_ClockSourceINT
Mcu.Pin4=PF10
Mcu.Pin5=PH0-OSC_IN
Mcu.Pin6=PH1-OSC_OUT
Mcu.Pin7=PC1
Mcu.Pin8=PA1
Mcu.Pin9=PA2
Mcu.PinsNb=29
Mcu.PinsNb=32
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F407ZETx
@ -101,7 +104,9 @@ NVIC.SavedSvcallIrqHandlerGenerated=true
NVIC.SavedSystickIrqHandlerGenerated=true
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:true\:false
NVIC.TIM1_UP_TIM10_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true\:true
NVIC.TIM4_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.TIM6_DAC_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.TIM8_CC_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.TimeBase=TIM1_UP_TIM10_IRQn
NVIC.TimeBaseIP=TIM1
NVIC.USART1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
@ -120,23 +125,19 @@ PA7.Mode=RMII
PA7.Signal=ETH_CRS_DV
PA9.Mode=Asynchronous
PA9.Signal=USART1_TX
PB0.Locked=true
PB0.Signal=TIM8_CH2N
PB1.Locked=true
PB1.Signal=TIM8_CH3N
PC1.Mode=RMII
PC1.Signal=ETH_MDC
PC4.Mode=RMII
PC4.Signal=ETH_RXD0
PC5.Mode=RMII
PC5.Signal=ETH_RXD1
PC6.GPIOParameters=GPIO_PuPd
PC6.GPIO_PuPd=GPIO_PULLUP
PC6.Signal=S_TIM8_CH1
PC7.GPIOParameters=GPIO_PuPd
PC7.GPIO_PuPd=GPIO_PULLUP
PC7.Signal=S_TIM8_CH2
PD12.GPIOParameters=GPIO_PuPd
PD12.GPIO_PuPd=GPIO_PULLUP
PC8.Signal=S_TIM8_CH3
PD12.Signal=S_TIM4_CH1
PD13.GPIOParameters=GPIO_PuPd
PD13.GPIO_PuPd=GPIO_PULLUP
PD13.Signal=S_TIM4_CH2
PD3.GPIOParameters=GPIO_Label
PD3.GPIO_Label=ETH_RST
@ -209,7 +210,7 @@ ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=MDK-ARM V5
ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_LWIP_Init-LWIP-false-HAL-false,4-MX_TIM6_Init-TIM6-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_TIM4_Init-TIM4-false-HAL-true,7-MX_TIM8_Init-TIM8-false-HAL-true
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_LWIP_Init-LWIP-false-HAL-false,4-MX_TIM6_Init-TIM6-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_TIM4_Init-TIM4-false-HAL-true
RCC.48MHZClocksFreq_Value=84000000
RCC.AHBFreq_Value=168000000
RCC.APB1CLKDivider=RCC_HCLK_DIV4
@ -244,22 +245,26 @@ RCC.VCOOutputFreq_Value=336000000
RCC.VcooutputI2S=192000000
SH.GPXTI2.0=GPIO_EXTI2
SH.GPXTI2.ConfNb=1
SH.S_TIM4_CH1.0=TIM4_CH1,Encoder_Interface
SH.S_TIM4_CH1.0=TIM4_CH1,Input_Capture1_from_TI1
SH.S_TIM4_CH1.ConfNb=1
SH.S_TIM4_CH2.0=TIM4_CH2,Encoder_Interface
SH.S_TIM4_CH2.0=TIM4_CH2,Input_Capture2_from_TI2
SH.S_TIM4_CH2.ConfNb=1
SH.S_TIM8_CH1.0=TIM8_CH1,Encoder_Interface
SH.S_TIM8_CH1.ConfNb=1
SH.S_TIM8_CH2.0=TIM8_CH2,Encoder_Interface
SH.S_TIM8_CH2.0=TIM8_CH2,Input_Capture2_from_TI2
SH.S_TIM8_CH2.ConfNb=1
TIM4.EncoderMode=TIM_ENCODERMODE_TI12
TIM4.IPParameters=EncoderMode
SH.S_TIM8_CH3.0=TIM8_CH3,Input_Capture3_from_TI3
SH.S_TIM8_CH3.ConfNb=1
TIM4.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE
TIM4.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1
TIM4.Channel-Input_Capture2_from_TI2=TIM_CHANNEL_2
TIM4.IPParameters=Channel-Input_Capture1_from_TI1,Channel-Input_Capture2_from_TI2,AutoReloadPreload
TIM6.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE
TIM6.IPParameters=Prescaler,Period,AutoReloadPreload
TIM6.Period=1000-1
TIM6.Prescaler=84-1
TIM8.EncoderMode=TIM_ENCODERMODE_TI12
TIM8.IPParameters=EncoderMode
TIM8.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE
TIM8.Channel-Input_Capture2_from_TI2=TIM_CHANNEL_2
TIM8.Channel-Input_Capture3_from_TI3=TIM_CHANNEL_3
TIM8.IPParameters=Channel-Input_Capture2_from_TI2,Channel-Input_Capture3_from_TI3,AutoReloadPreload
USART1.IPParameters=VirtualMode
USART1.VirtualMode=VM_ASYNC
VP_FREERTOS_VS_CMSIS_V1.Mode=CMSIS_V1
@ -268,6 +273,8 @@ VP_LWIP_VS_Enabled.Mode=Enabled
VP_LWIP_VS_Enabled.Signal=LWIP_VS_Enabled
VP_SYS_VS_tim1.Mode=TIM1
VP_SYS_VS_tim1.Signal=SYS_VS_tim1
VP_TIM4_VS_ClockSourceINT.Mode=Internal
VP_TIM4_VS_ClockSourceINT.Signal=TIM4_VS_ClockSourceINT
VP_TIM6_VS_ClockSourceINT.Mode=Enable_Timer
VP_TIM6_VS_ClockSourceINT.Signal=TIM6_VS_ClockSourceINT
board=custom

31
MDK-ARM/LWIP.uvguix.29643
File diff suppressed because it is too large
View File

52
MDK-ARM/LWIP.uvoptx

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<?xml version="1.0" encoding="UTF-8"?>
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
<SchemaVersion>1.0</SchemaVersion>
@ -45,7 +45,7 @@
<PageWidth>79</PageWidth>
<PageLength>66</PageLength>
<TabStop>8</TabStop>
<ListingPath></ListingPath>
<ListingPath />
</OPTLEX>
<ListingPage>
<CreateCListing>1</CreateCListing>
@ -104,16 +104,16 @@
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>3</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
<sDlgPa></sDlgPa>
<sIfile></sIfile>
<tDll></tDll>
<tDllPa></tDllPa>
<tDlgDll></tDlgDll>
<tDlgPa></tDlgPa>
<tIfile></tIfile>
<sDll />
<sDllPa />
<sDlgDll />
<sDlgPa />
<sIfile />
<tDll />
<tDllPa />
<tDlgDll />
<tDlgPa />
<tIfile />
<pMon>BIN\CMSIS_AGDI.dll</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
@ -130,12 +130,12 @@
<SetRegEntry>
<Number>0</Number>
<Key>ARMDBGFLAGS</Key>
<Name></Name>
<Name />
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGUARM</Key>
<Name></Name>
<Name />
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
@ -167,7 +167,7 @@
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>..\usersrc\atcmd.c</Filename>
<ExecCommand></ExecCommand>
<ExecCommand />
<Expression>\\LWIP\../usersrc/atcmd.c\132</Expression>
</Bp>
<Bp>
@ -183,7 +183,7 @@
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>../Src/ethernetif.c</Filename>
<ExecCommand></ExecCommand>
<ExecCommand />
<Expression>\\LWIP\../Src/ethernetif.c\198</Expression>
</Bp>
</Breakpoint>
@ -228,19 +228,19 @@
<newCpu>0</newCpu>
<uProt>0</uProt>
</DebugFlag>
<LintExecutable></LintExecutable>
<LintConfigFile></LintConfigFile>
<LintExecutable />
<LintConfigFile />
<bLintAuto>0</bLintAuto>
<bAutoGenD>0</bAutoGenD>
<LntExFlags>0</LntExFlags>
<pMisraName></pMisraName>
<pszMrule></pszMrule>
<pSingCmds></pSingCmds>
<pMultCmds></pMultCmds>
<pMisraNamep></pMisraNamep>
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<pMisraName />
<pszMrule />
<pSingCmds />
<pMultCmds />
<pMisraNamep />
<pszMrulep />
<pSingCmdsp />
<pMultCmdsp />
<DebugDescription>
<Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq>

1088
MDK-ARM/LWIP.uvprojx
File diff suppressed because it is too large
View File

1
Src/gpio.c

@ -50,6 +50,7 @@ void MX_GPIO_Init(void)
__HAL_RCC_GPIOH_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOG_CLK_ENABLE();

30
Src/stm32f4xx_it.c

@ -56,7 +56,9 @@
/* External variables --------------------------------------------------------*/
extern ETH_HandleTypeDef heth;
extern TIM_HandleTypeDef htim4;
extern TIM_HandleTypeDef htim6;
extern TIM_HandleTypeDef htim8;
extern UART_HandleTypeDef huart1;
extern TIM_HandleTypeDef htim1;
@ -189,6 +191,20 @@ void TIM1_UP_TIM10_IRQHandler(void)
}
/**
* @brief This function handles TIM4 global interrupt.
*/
void TIM4_IRQHandler(void)
{
/* USER CODE BEGIN TIM4_IRQn 0 */
/* USER CODE END TIM4_IRQn 0 */
HAL_TIM_IRQHandler(&htim4);
/* USER CODE BEGIN TIM4_IRQn 1 */
/* USER CODE END TIM4_IRQn 1 */
}
/**
* @brief This function handles USART1 global interrupt.
*/
void USART1_IRQHandler(void)
@ -203,6 +219,20 @@ void USART1_IRQHandler(void)
}
/**
* @brief This function handles TIM8 capture compare interrupt.
*/
void TIM8_CC_IRQHandler(void)
{
/* USER CODE BEGIN TIM8_CC_IRQn 0 */
/* USER CODE END TIM8_CC_IRQn 0 */
HAL_TIM_IRQHandler(&htim8);
/* USER CODE BEGIN TIM8_CC_IRQn 1 */
/* USER CODE END TIM8_CC_IRQn 1 */
}
/**
* @brief This function handles TIM6 global interrupt, DAC1 and DAC2 underrun error interrupts.
*/
void TIM6_DAC_IRQHandler(void)

191
Src/tim.c

@ -36,8 +36,9 @@ void MX_TIM4_Init(void)
/* USER CODE END TIM4_Init 0 */
TIM_Encoder_InitTypeDef sConfig = {0};
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
TIM_IC_InitTypeDef sConfigIC = {0};
/* USER CODE BEGIN TIM4_Init 1 */
@ -47,17 +48,17 @@ void MX_TIM4_Init(void)
htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
htim4.Init.Period = 65535;
htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
sConfig.IC1Filter = 0;
sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
sConfig.IC2Filter = 0;
if (HAL_TIM_Encoder_Init(&htim4, &sConfig) != HAL_OK)
htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
if (HAL_TIM_Base_Init(&htim4) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_IC_Init(&htim4) != HAL_OK)
{
Error_Handler();
}
@ -67,6 +68,18 @@ void MX_TIM4_Init(void)
{
Error_Handler();
}
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
sConfigIC.ICFilter = 0;
if (HAL_TIM_IC_ConfigChannel(&htim4, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_IC_ConfigChannel(&htim4, &sConfigIC, TIM_CHANNEL_2) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM4_Init 2 */
/* USER CODE END TIM4_Init 2 */
@ -113,8 +126,8 @@ void MX_TIM8_Init(void)
/* USER CODE END TIM8_Init 0 */
TIM_Encoder_InitTypeDef sConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
TIM_IC_InitTypeDef sConfigIC = {0};
/* USER CODE BEGIN TIM8_Init 1 */
@ -125,17 +138,8 @@ void MX_TIM8_Init(void)
htim8.Init.Period = 65535;
htim8.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim8.Init.RepetitionCounter = 0;
htim8.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
sConfig.IC1Filter = 0;
sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
sConfig.IC2Filter = 0;
if (HAL_TIM_Encoder_Init(&htim8, &sConfig) != HAL_OK)
htim8.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
if (HAL_TIM_IC_Init(&htim8) != HAL_OK)
{
Error_Handler();
}
@ -145,17 +149,29 @@ void MX_TIM8_Init(void)
{
Error_Handler();
}
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
sConfigIC.ICFilter = 0;
if (HAL_TIM_IC_ConfigChannel(&htim8, &sConfigIC, TIM_CHANNEL_2) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_IC_ConfigChannel(&htim8, &sConfigIC, TIM_CHANNEL_3) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM8_Init 2 */
/* USER CODE END TIM8_Init 2 */
}
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* tim_encoderHandle)
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(tim_encoderHandle->Instance==TIM4)
if(tim_baseHandle->Instance==TIM4)
{
/* USER CODE BEGIN TIM4_MspInit 0 */
@ -170,16 +186,40 @@ void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* tim_encoderHandle)
*/
GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* TIM4 interrupt Init */
HAL_NVIC_SetPriority(TIM4_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(TIM4_IRQn);
/* USER CODE BEGIN TIM4_MspInit 1 */
/* USER CODE END TIM4_MspInit 1 */
}
else if(tim_encoderHandle->Instance==TIM8)
else if(tim_baseHandle->Instance==TIM6)
{
/* USER CODE BEGIN TIM6_MspInit 0 */
/* USER CODE END TIM6_MspInit 0 */
/* TIM6 clock enable */
__HAL_RCC_TIM6_CLK_ENABLE();
/* TIM6 interrupt Init */
HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
/* USER CODE BEGIN TIM6_MspInit 1 */
/* USER CODE END TIM6_MspInit 1 */
}
}
void HAL_TIM_IC_MspInit(TIM_HandleTypeDef* tim_icHandle)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(tim_icHandle->Instance==TIM8)
{
/* USER CODE BEGIN TIM8_MspInit 0 */
@ -189,46 +229,57 @@ void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* tim_encoderHandle)
__HAL_RCC_GPIOC_CLK_ENABLE();
/**TIM8 GPIO Configuration
PC6 ------> TIM8_CH1
PC7 ------> TIM8_CH2
PC8 ------> TIM8_CH3
*/
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF3_TIM8;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* TIM8 interrupt Init */
HAL_NVIC_SetPriority(TIM8_CC_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(TIM8_CC_IRQn);
/* USER CODE BEGIN TIM8_MspInit 1 */
/* USER CODE END TIM8_MspInit 1 */
}
}
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
{
if(tim_baseHandle->Instance==TIM6)
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(timHandle->Instance==TIM8)
{
/* USER CODE BEGIN TIM6_MspInit 0 */
/* USER CODE BEGIN TIM8_MspPostInit 0 */
/* USER CODE END TIM6_MspInit 0 */
/* TIM6 clock enable */
__HAL_RCC_TIM6_CLK_ENABLE();
/* USER CODE END TIM8_MspPostInit 0 */
/* TIM6 interrupt Init */
HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
/* USER CODE BEGIN TIM6_MspInit 1 */
__HAL_RCC_GPIOB_CLK_ENABLE();
/**TIM8 GPIO Configuration
PB0 ------> TIM8_CH2N
PB1 ------> TIM8_CH3N
*/
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF3_TIM8;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE END TIM6_MspInit 1 */
/* USER CODE BEGIN TIM8_MspPostInit 1 */
/* USER CODE END TIM8_MspPostInit 1 */
}
}
void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* tim_encoderHandle)
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
{
if(tim_encoderHandle->Instance==TIM4)
if(tim_baseHandle->Instance==TIM4)
{
/* USER CODE BEGIN TIM4_MspDeInit 0 */
@ -242,46 +293,54 @@ void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* tim_encoderHandle)
*/
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_12|GPIO_PIN_13);
/* TIM4 interrupt Deinit */
HAL_NVIC_DisableIRQ(TIM4_IRQn);
/* USER CODE BEGIN TIM4_MspDeInit 1 */
/* USER CODE END TIM4_MspDeInit 1 */
}
else if(tim_encoderHandle->Instance==TIM8)
else if(tim_baseHandle->Instance==TIM6)
{
/* USER CODE BEGIN TIM8_MspDeInit 0 */
/* USER CODE BEGIN TIM6_MspDeInit 0 */
/* USER CODE END TIM8_MspDeInit 0 */
/* USER CODE END TIM6_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM8_CLK_DISABLE();
/**TIM8 GPIO Configuration
PC6 ------> TIM8_CH1
PC7 ------> TIM8_CH2
*/
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_6|GPIO_PIN_7);
__HAL_RCC_TIM6_CLK_DISABLE();
/* USER CODE BEGIN TIM8_MspDeInit 1 */
/* TIM6 interrupt Deinit */
HAL_NVIC_DisableIRQ(TIM6_DAC_IRQn);
/* USER CODE BEGIN TIM6_MspDeInit 1 */
/* USER CODE END TIM8_MspDeInit 1 */
/* USER CODE END TIM6_MspDeInit 1 */
}
}
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef* tim_icHandle)
{
if(tim_baseHandle->Instance==TIM6)
if(tim_icHandle->Instance==TIM8)
{
/* USER CODE BEGIN TIM6_MspDeInit 0 */
/* USER CODE BEGIN TIM8_MspDeInit 0 */
/* USER CODE END TIM6_MspDeInit 0 */
/* USER CODE END TIM8_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM6_CLK_DISABLE();
__HAL_RCC_TIM8_CLK_DISABLE();
/* TIM6 interrupt Deinit */
HAL_NVIC_DisableIRQ(TIM6_DAC_IRQn);
/* USER CODE BEGIN TIM6_MspDeInit 1 */
/**TIM8 GPIO Configuration
PB0 ------> TIM8_CH2N
PB1 ------> TIM8_CH3N
PC7 ------> TIM8_CH2
PC8 ------> TIM8_CH3
*/
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0|GPIO_PIN_1);
/* USER CODE END TIM6_MspDeInit 1 */
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_7|GPIO_PIN_8);
/* TIM8 interrupt Deinit */
HAL_NVIC_DisableIRQ(TIM8_CC_IRQn);
/* USER CODE BEGIN TIM8_MspDeInit 1 */
/* USER CODE END TIM8_MspDeInit 1 */
}
}

2
usersrc/encoder.c

@ -11,7 +11,7 @@ static uint32_t driven_encoder_gear_lastprocess = 0;
static encoder_t m_uarts[] = {
{&camera_encoder, TIM_CHANNEL_1 | TIM_CHANNEL_2}, //
{&driven_encoder_gear, TIM_CHANNEL_1 | TIM_CHANNEL_2} //
// {&driven_encoder_gear, TIM_CHANNEL_1 | TIM_CHANNEL_2} //
};
void encoder_all_start(void)

51
usersrc/usermain.c

@ -98,24 +98,55 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
}
}
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
if (htim == &htim4)
{
if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1)
{
printf("tim4 channel 1\r\n");
}
else if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2)
{
printf("tim4 channel 2\r\n");
}
}
else if (htim == &htim8)
{
if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1)
{
printf("tim8 channel 1\r\n");
}
else if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2)
{
printf("tim8 channel 2\r\n");
}
}
}
void user_main()
{
printf("==============ethernet_sound_acquisition_card=============\r\n");
printf("version %d.%d", VERSION_MAIN_ID, VERSION_SUB_ID);
encoder_all_start();
udp_client_init();
zkey_init(&s_key_module);
port_uart_start_all_uart_receive();
HAL_TIM_IC_Start_IT(&htim4, TIM_CHANNEL_1); //
HAL_TIM_IC_Start_IT(&htim4, TIM_CHANNEL_2); //
HAL_TIM_IC_Start_IT(&htim8, TIM_CHANNEL_1); //
HAL_TIM_IC_Start_IT(&htim8, TIM_CHANNEL_2); //
// encoder_all_start();
// udp_client_init();
// zkey_init(&s_key_module);
// port_uart_start_all_uart_receive();
while (1)
{
udp_client_genlock_and_esync_active();
udp_client_active();
zkey_schedule();
udp_client_recv();
at_cmd_processer_try_process_data();
encoder_light_schedule();
// udp_client_genlock_and_esync_active();
// udp_client_active();
// zkey_schedule();
// udp_client_recv();
// at_cmd_processer_try_process_data();
// encoder_light_schedule();
port_do_debug_light_state();
osDelay(1);
}

Loading…
Cancel
Save