servo_init
This commit is contained in:
parent
675a666148
commit
21f94dfd10
50
CAR.ioc
50
CAR.ioc
|
@ -41,16 +41,17 @@ Mcu.CPN=STM32F103C8T6
|
||||||
Mcu.Family=STM32F1
|
Mcu.Family=STM32F1
|
||||||
Mcu.IP0=ADC1
|
Mcu.IP0=ADC1
|
||||||
Mcu.IP1=DMA
|
Mcu.IP1=DMA
|
||||||
Mcu.IP10=USART2
|
Mcu.IP10=USART1
|
||||||
|
Mcu.IP11=USART2
|
||||||
Mcu.IP2=I2C2
|
Mcu.IP2=I2C2
|
||||||
Mcu.IP3=NVIC
|
Mcu.IP3=NVIC
|
||||||
Mcu.IP4=RCC
|
Mcu.IP4=RCC
|
||||||
Mcu.IP5=SYS
|
Mcu.IP5=SYS
|
||||||
Mcu.IP6=TIM2
|
Mcu.IP6=TIM1
|
||||||
Mcu.IP7=TIM3
|
Mcu.IP7=TIM2
|
||||||
Mcu.IP8=TIM4
|
Mcu.IP8=TIM3
|
||||||
Mcu.IP9=USART1
|
Mcu.IP9=TIM4
|
||||||
Mcu.IPNb=11
|
Mcu.IPNb=12
|
||||||
Mcu.Name=STM32F103C(8-B)Tx
|
Mcu.Name=STM32F103C(8-B)Tx
|
||||||
Mcu.Package=LQFP48
|
Mcu.Package=LQFP48
|
||||||
Mcu.Pin0=PD0-OSC_IN
|
Mcu.Pin0=PD0-OSC_IN
|
||||||
|
@ -60,21 +61,22 @@ Mcu.Pin11=PB10
|
||||||
Mcu.Pin12=PB11
|
Mcu.Pin12=PB11
|
||||||
Mcu.Pin13=PA9
|
Mcu.Pin13=PA9
|
||||||
Mcu.Pin14=PA10
|
Mcu.Pin14=PA10
|
||||||
Mcu.Pin15=PA12
|
Mcu.Pin15=PA11
|
||||||
Mcu.Pin16=PA13
|
Mcu.Pin16=PA12
|
||||||
Mcu.Pin17=PA14
|
Mcu.Pin17=PA13
|
||||||
Mcu.Pin18=PA15
|
Mcu.Pin18=PA14
|
||||||
Mcu.Pin19=PB4
|
Mcu.Pin19=PA15
|
||||||
Mcu.Pin2=PA0-WKUP
|
Mcu.Pin2=PA0-WKUP
|
||||||
Mcu.Pin20=PB5
|
Mcu.Pin20=PB4
|
||||||
Mcu.Pin21=PB6
|
Mcu.Pin21=PB5
|
||||||
Mcu.Pin22=PB7
|
Mcu.Pin22=PB6
|
||||||
Mcu.Pin23=PB8
|
Mcu.Pin23=PB7
|
||||||
Mcu.Pin24=PB9
|
Mcu.Pin24=PB8
|
||||||
Mcu.Pin25=VP_SYS_VS_Systick
|
Mcu.Pin25=PB9
|
||||||
Mcu.Pin26=VP_TIM2_VS_ClockSourceINT
|
Mcu.Pin26=VP_SYS_VS_Systick
|
||||||
Mcu.Pin27=VP_TIM3_VS_ClockSourceINT
|
Mcu.Pin27=VP_TIM2_VS_ClockSourceINT
|
||||||
Mcu.Pin28=VP_TIM4_VS_ClockSourceINT
|
Mcu.Pin28=VP_TIM3_VS_ClockSourceINT
|
||||||
|
Mcu.Pin29=VP_TIM4_VS_ClockSourceINT
|
||||||
Mcu.Pin3=PA1
|
Mcu.Pin3=PA1
|
||||||
Mcu.Pin4=PA2
|
Mcu.Pin4=PA2
|
||||||
Mcu.Pin5=PA3
|
Mcu.Pin5=PA3
|
||||||
|
@ -82,7 +84,7 @@ Mcu.Pin6=PA5
|
||||||
Mcu.Pin7=PA6
|
Mcu.Pin7=PA6
|
||||||
Mcu.Pin8=PA7
|
Mcu.Pin8=PA7
|
||||||
Mcu.Pin9=PB0
|
Mcu.Pin9=PB0
|
||||||
Mcu.PinsNb=29
|
Mcu.PinsNb=30
|
||||||
Mcu.ThirdPartyNb=0
|
Mcu.ThirdPartyNb=0
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32F103C8Tx
|
Mcu.UserName=STM32F103C8Tx
|
||||||
|
@ -116,6 +118,8 @@ PA1.PinState=GPIO_PIN_SET
|
||||||
PA1.Signal=GPIO_Output
|
PA1.Signal=GPIO_Output
|
||||||
PA10.Mode=Asynchronous
|
PA10.Mode=Asynchronous
|
||||||
PA10.Signal=USART1_RX
|
PA10.Signal=USART1_RX
|
||||||
|
PA11.Locked=true
|
||||||
|
PA11.Signal=S_TIM1_CH4
|
||||||
PA12.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
|
PA12.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
|
||||||
PA12.GPIO_Label=Echo
|
PA12.GPIO_Label=Echo
|
||||||
PA12.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
|
PA12.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
|
||||||
|
@ -250,6 +254,8 @@ SH.ADCx_IN6.0=ADC1_IN6,IN6
|
||||||
SH.ADCx_IN6.ConfNb=1
|
SH.ADCx_IN6.ConfNb=1
|
||||||
SH.GPXTI12.0=GPIO_EXTI12
|
SH.GPXTI12.0=GPIO_EXTI12
|
||||||
SH.GPXTI12.ConfNb=1
|
SH.GPXTI12.ConfNb=1
|
||||||
|
SH.S_TIM1_CH4.0=TIM1_CH4,PWM Generation4 CH4
|
||||||
|
SH.S_TIM1_CH4.ConfNb=1
|
||||||
SH.S_TIM3_CH2.0=TIM3_CH2,PWM Generation2 CH2
|
SH.S_TIM3_CH2.0=TIM3_CH2,PWM Generation2 CH2
|
||||||
SH.S_TIM3_CH2.ConfNb=1
|
SH.S_TIM3_CH2.ConfNb=1
|
||||||
SH.S_TIM3_CH3.0=TIM3_CH3,PWM Generation3 CH3
|
SH.S_TIM3_CH3.0=TIM3_CH3,PWM Generation3 CH3
|
||||||
|
@ -260,6 +266,8 @@ SH.S_TIM4_CH1.0=TIM4_CH1,PWM Generation1 CH1
|
||||||
SH.S_TIM4_CH1.ConfNb=1
|
SH.S_TIM4_CH1.ConfNb=1
|
||||||
SH.S_TIM4_CH2.0=TIM4_CH2,PWM Generation2 CH2
|
SH.S_TIM4_CH2.0=TIM4_CH2,PWM Generation2 CH2
|
||||||
SH.S_TIM4_CH2.ConfNb=1
|
SH.S_TIM4_CH2.ConfNb=1
|
||||||
|
TIM1.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
|
||||||
|
TIM1.IPParameters=Channel-PWM Generation4 CH4
|
||||||
TIM2.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_DISABLE
|
TIM2.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_DISABLE
|
||||||
TIM2.IPParameters=Prescaler,Period,AutoReloadPreload
|
TIM2.IPParameters=Prescaler,Period,AutoReloadPreload
|
||||||
TIM2.Period=72 - 1
|
TIM2.Period=72 - 1
|
||||||
|
|
|
@ -32,6 +32,8 @@ extern "C" {
|
||||||
|
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
|
extern TIM_HandleTypeDef htim1;
|
||||||
|
|
||||||
extern TIM_HandleTypeDef htim2;
|
extern TIM_HandleTypeDef htim2;
|
||||||
|
|
||||||
extern TIM_HandleTypeDef htim3;
|
extern TIM_HandleTypeDef htim3;
|
||||||
|
@ -42,6 +44,7 @@ extern TIM_HandleTypeDef htim4;
|
||||||
|
|
||||||
/* USER CODE END Private defines */
|
/* USER CODE END Private defines */
|
||||||
|
|
||||||
|
void MX_TIM1_Init(void);
|
||||||
void MX_TIM2_Init(void);
|
void MX_TIM2_Init(void);
|
||||||
void MX_TIM3_Init(void);
|
void MX_TIM3_Init(void);
|
||||||
void MX_TIM4_Init(void);
|
void MX_TIM4_Init(void);
|
||||||
|
|
|
@ -106,6 +106,7 @@ int main(void)
|
||||||
MX_USART2_UART_Init();
|
MX_USART2_UART_Init();
|
||||||
MX_USART1_UART_Init();
|
MX_USART1_UART_Init();
|
||||||
MX_ADC1_Init();
|
MX_ADC1_Init();
|
||||||
|
MX_TIM1_Init();
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
HC_SR04_Init();
|
HC_SR04_Init();
|
||||||
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)adc_value,2);
|
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)adc_value,2);
|
||||||
|
@ -120,7 +121,7 @@ int main(void)
|
||||||
//printf("%s","test\n");
|
//printf("%s","test\n");
|
||||||
|
|
||||||
// HAL_ADC_Start(&hadc1);//启动ADC1转换//======================================
|
// HAL_ADC_Start(&hadc1);//启动ADC1转换//======================================
|
||||||
//HAL_ADC_PollForConversion(&hadc1,50);//等待ADC转换完成(句柄,超时时间<EFBFBD>?
|
//HAL_ADC_PollForConversion(&hadc1,50);//ç‰å¾…ADC转æ<EFBFBD>¢å®Œæˆ<EFBFBD>(å<EFBFBD>¥æŸ„,超时时间ï¿??
|
||||||
//adc_value = HAL_ADC_GetValue(&hadc1); //读取ADC转换数据
|
//adc_value = HAL_ADC_GetValue(&hadc1); //读取ADC转换数据
|
||||||
printf("PA5_value = %f\r\n", 1.0 *adc_value[0]);//输出转换后的烟雾传感器的值的数据
|
printf("PA5_value = %f\r\n", 1.0 *adc_value[0]);//输出转换后的烟雾传感器的值的数据
|
||||||
printf("PA6_value = %f\r\n", 1.0 *adc_value[1]);//输出转换后的烟雾传感器的值的数据
|
printf("PA6_value = %f\r\n", 1.0 *adc_value[1]);//输出转换后的烟雾传感器的值的数据
|
||||||
|
|
113
Core/Src/tim.c
113
Core/Src/tim.c
|
@ -24,10 +24,70 @@
|
||||||
|
|
||||||
/* USER CODE END 0 */
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
|
TIM_HandleTypeDef htim1;
|
||||||
TIM_HandleTypeDef htim2;
|
TIM_HandleTypeDef htim2;
|
||||||
TIM_HandleTypeDef htim3;
|
TIM_HandleTypeDef htim3;
|
||||||
TIM_HandleTypeDef htim4;
|
TIM_HandleTypeDef htim4;
|
||||||
|
|
||||||
|
/* TIM1 init function */
|
||||||
|
void MX_TIM1_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* USER CODE BEGIN TIM1_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM1_Init 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 = 0;
|
||||||
|
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
|
htim1.Init.Period = 65535;
|
||||||
|
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
|
htim1.Init.RepetitionCounter = 0;
|
||||||
|
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||||
|
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.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
|
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
|
||||||
|
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
|
||||||
|
if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_4) != 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 */
|
/* TIM2 init function */
|
||||||
void MX_TIM2_Init(void)
|
void MX_TIM2_Init(void)
|
||||||
{
|
{
|
||||||
|
@ -189,6 +249,22 @@ void MX_TIM4_Init(void)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* tim_pwmHandle)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(tim_pwmHandle->Instance==TIM1)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN TIM1_MspInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM1_MspInit 0 */
|
||||||
|
/* TIM1 clock enable */
|
||||||
|
__HAL_RCC_TIM1_CLK_ENABLE();
|
||||||
|
/* USER CODE BEGIN TIM1_MspInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM1_MspInit 1 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
|
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -234,11 +310,30 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
|
||||||
{
|
{
|
||||||
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(timHandle->Instance==TIM3)
|
if(timHandle->Instance==TIM1)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN TIM1_MspPostInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM1_MspPostInit 0 */
|
||||||
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||||
|
/**TIM1 GPIO Configuration
|
||||||
|
PA11 ------> TIM1_CH4
|
||||||
|
*/
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_11;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN TIM1_MspPostInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM1_MspPostInit 1 */
|
||||||
|
}
|
||||||
|
else if(timHandle->Instance==TIM3)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM3_MspPostInit 0 */
|
/* USER CODE BEGIN TIM3_MspPostInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM3_MspPostInit 0 */
|
/* USER CODE END TIM3_MspPostInit 0 */
|
||||||
|
|
||||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||||
/**TIM3 GPIO Configuration
|
/**TIM3 GPIO Configuration
|
||||||
|
@ -283,6 +378,22 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* tim_pwmHandle)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(tim_pwmHandle->Instance==TIM1)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN TIM1_MspDeInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM1_MspDeInit 0 */
|
||||||
|
/* Peripheral clock disable */
|
||||||
|
__HAL_RCC_TIM1_CLK_DISABLE();
|
||||||
|
/* USER CODE BEGIN TIM1_MspDeInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM1_MspDeInit 1 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
|
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user