| @@ -36,12 +36,21 @@ extern TIM_HandleTypeDef htim2; | |||||
| extern TIM_HandleTypeDef htim10; | extern TIM_HandleTypeDef htim10; | ||||
| extern TIM_HandleTypeDef htim11; | |||||
| extern TIM_HandleTypeDef htim13; | |||||
| extern TIM_HandleTypeDef htim14; | |||||
| /* USER CODE BEGIN Private defines */ | /* USER CODE BEGIN Private defines */ | ||||
| /* USER CODE END Private defines */ | /* USER CODE END Private defines */ | ||||
| void MX_TIM2_Init(void); | void MX_TIM2_Init(void); | ||||
| void MX_TIM10_Init(void); | void MX_TIM10_Init(void); | ||||
| void MX_TIM11_Init(void); | |||||
| void MX_TIM13_Init(void); | |||||
| void MX_TIM14_Init(void); | |||||
| void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); | void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); | ||||
| @@ -113,7 +113,7 @@ int main(void) | |||||
| HAL_Init(); | HAL_Init(); | ||||
| /* USER CODE BEGIN Init */ | /* USER CODE BEGIN Init */ | ||||
| PVD_Init(); | |||||
| /* USER CODE END Init */ | /* USER CODE END Init */ | ||||
| /* Configure the system clock */ | /* Configure the system clock */ | ||||
| @@ -131,6 +131,9 @@ int main(void) | |||||
| MX_USART1_UART_Init(); | MX_USART1_UART_Init(); | ||||
| MX_TIM10_Init(); | MX_TIM10_Init(); | ||||
| MX_TIM2_Init(); | MX_TIM2_Init(); | ||||
| MX_TIM11_Init(); | |||||
| MX_TIM13_Init(); | |||||
| MX_TIM14_Init(); | |||||
| /* USER CODE BEGIN 2 */ | /* USER CODE BEGIN 2 */ | ||||
| @@ -267,41 +270,78 @@ void Y1Direction(void *p_arg) | |||||
| while(1) | while(1) | ||||
| { | { | ||||
| /* 脉冲加减速 */ | |||||
| /* 获取加减速所需要的脉冲数 */ | |||||
| GetAddCount(); | |||||
| /* 段切换时的脉冲加减速 */ | |||||
| if (ArrFlag == 1) | if (ArrFlag == 1) | ||||
| { | { | ||||
| if(TIM2->CNT < Options.AccUpTime) | |||||
| /* 脉冲加速 */ | |||||
| if (Acc > 0) | |||||
| { | |||||
| if (TIM2->CNT < AccUpCount) | |||||
| { | |||||
| SetFrequency(Options.SentPost, PulseOutput[PrePulse].Frequency + TIM2->CNT * Acc); | |||||
| if (TIM2->CNT == 0) PulseStart(); /* 开始产生脉冲 */ | |||||
| } | |||||
| else | |||||
| { | |||||
| SetFrequency(Options.SentPost, PulseOutput[NowPulse].Frequency); | |||||
| ArrFlag = 0; | |||||
| } | |||||
| } | |||||
| /* 脉冲减速 */ | |||||
| else if (Acc <= 0) | |||||
| { | |||||
| if (TIM2->CNT < AccDownCount) | |||||
| { | |||||
| SetFrequency(Options.SentPost, PulseOutput[PrePulse].Frequency + TIM2->CNT * Acc); | |||||
| if(TIM2->CNT == 0) PulseStart(); /* 开始产生脉冲 */ | |||||
| } | |||||
| else | |||||
| { | |||||
| SetFrequency(Options.SentPost, PulseOutput[NowPulse].Frequency); | |||||
| ArrFlag = 0; | |||||
| } | |||||
| } | |||||
| } | |||||
| /* 最后一段脉冲的减速 */ | |||||
| if (NowPulse == Options.AllPulse - 1) | |||||
| { | |||||
| Acc = - (float)PulseOutput[NowPulse].Frequency / (float)AccDownCount;/* 计算加速度 */ | |||||
| if (TIM2->CNT > PulseOutput[NowPulse].PulseCount - AccUpCount - AccDownCount) /* 当达到脉冲减速的位置开始减速 */ | |||||
| { | |||||
| SetFrequency(Options.SentPost, PulseOutput[NowPulse].Frequency + TIM2->CNT * Acc); | |||||
| } | |||||
| } | |||||
| /* 第一段脉冲的加速 */ | |||||
| if (NowPulse == Options.StartPulse) | |||||
| { | |||||
| Acc = (float)PulseOutput[NowPulse].Frequency / (float)AccUpCount;/* 计算加速度 */ | |||||
| if (AccUpCount < PulseOutput[NowPulse].PulseCount)//如果能够完成加速 | |||||
| { | { | ||||
| if(TIM2->CNT == 0) PulseStart(); /* 开始产生脉冲 */ | |||||
| SetFrequency(0, PulseOutput[PrePulse].Frequency + TIM2->CNT * Acc); | |||||
| if(TIM2->CNT < AccUpCount) | |||||
| { | |||||
| SetFrequency(Options.SentPost, TIM2->CNT * Acc); | |||||
| } | |||||
| else | |||||
| { | |||||
| SetFrequency(Options.SentPost, PulseOutput[NowPulse].Frequency); | |||||
| } | |||||
| } | } | ||||
| else | |||||
| else //不能完成加速 | |||||
| { | { | ||||
| SetFrequency(0, PulseOutput[NowPulse].Frequency); | |||||
| ArrFlag = 0; | |||||
| } | } | ||||
| } | } | ||||
| AllPulseCNT = BaseCNT + TIM2->CNT; | AllPulseCNT = BaseCNT + TIM2->CNT; | ||||
| CountSave(); | CountSave(); | ||||
| // /* 获取总的脉冲数 */ | |||||
| // if(EndFlag || FullFlag) | |||||
| // { | |||||
| // if(EndFlag) | |||||
| // { | |||||
| // AllPulseCNT = GetBase(NowPulse) + PulseOutput[NowPulse].PulseCount; | |||||
| // } | |||||
| // if(FullFlag) | |||||
| // { | |||||
| // AllPulseCNT = MAX_Pulse; | |||||
| // } | |||||
| // | |||||
| // } | |||||
| // else | |||||
| // { | |||||
| // AllPulseCNT = TIM2->CNT + GetBase(NowPulse); | |||||
| // } | |||||
| OSTimeDly(100, OS_OPT_TIME_DLY, &err); // 延时 100 个节拍 | OSTimeDly(100, OS_OPT_TIME_DLY, &err); // 延时 100 个节拍 | ||||
| } | } | ||||
| } | } | ||||
| @@ -319,8 +359,11 @@ void PulseStartTsk(void *p_arg) | |||||
| while(1) | while(1) | ||||
| { | { | ||||
| PLSRPluseLoad(); //读取脉冲设置 | |||||
| PLSROptionLoad(); //读取脉冲基础设置 | |||||
| if(Register_L[0x3000] == 0x01 && EN == 1) | if(Register_L[0x3000] == 0x01 && EN == 1) | ||||
| { | |||||
| { | |||||
| PulseStart(); | PulseStart(); | ||||
| EN = 0; | EN = 0; | ||||
| } | } | ||||
| @@ -328,9 +371,9 @@ void PulseStartTsk(void *p_arg) | |||||
| { | { | ||||
| EN = 1; | EN = 1; | ||||
| } | } | ||||
| PLSRPluseLoad(); //读取脉冲设置 | |||||
| PLSROptionLoad(); //读取脉冲基础设置 | |||||
| ModbusSaveSRAM(); | ModbusSaveSRAM(); | ||||
| OSTimeDly(100, OS_OPT_TIME_DLY, &err); // 延时 100 个节拍 | OSTimeDly(100, OS_OPT_TIME_DLY, &err); // 延时 100 个节拍 | ||||
| } | } | ||||
| } | } | ||||
| @@ -397,129 +440,6 @@ void DirOutput(void *p_arg) | |||||
| } | } | ||||
| } | } | ||||
| #if 0 | |||||
| /** | |||||
| * @brief 定时器中断回调(PWM计数) | |||||
| * @return 无 | |||||
| */ | |||||
| void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) | |||||
| { | |||||
| if (htim->Instance == TIM10) | |||||
| { | |||||
| PulseCount++; | |||||
| if (1 == Base.PulseMod) /* 如果是绝对模式 */ | |||||
| { | |||||
| if (TIM2->CNT == Base.MAX_Pulse) /* 达到了最大脉冲数 */ | |||||
| { | |||||
| HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* 停止PWM输出 */ | |||||
| } | |||||
| else if(PulseCount == PulseOutput[NowPulse].PulseCount) /* 如果当前段的计数等于要求的计数 */ | |||||
| { | |||||
| PulseCount = 0; | |||||
| HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* 停止PWM输出 */ | |||||
| if(Base.PulseNum - NowPulse >= 1) | |||||
| { | |||||
| Base.PrePulse = NowPulse; /* 保存之前的脉冲段 */ | |||||
| if(PulseOutput[NowPulse].NextPulse == 0) | |||||
| { | |||||
| NowPulse = NowPulse+ 1; | |||||
| } | |||||
| else | |||||
| { | |||||
| NowPulse = PulseOutput[NowPulse].NextPulse; /* 进入下一段脉冲 */ | |||||
| } | |||||
| Acc = GetAcc(PulseOutput[Base.PrePulse].Frequency, | |||||
| PulseOutput[NowPulse].Frequency, Base.AccCount); /* 计算Acc */ | |||||
| ArrFlag = 1; | |||||
| PulseStart(); //开始产生脉冲 | |||||
| } | |||||
| } | |||||
| } | |||||
| else if (0 == Base.PulseMod) /* 如果是相对模式 */ | |||||
| { | |||||
| if (PulseCount == PulseOutput[NowPulse].PulseCount) /* 如果当前段的计数等于要求的计数 */ | |||||
| { | |||||
| PulseCount = 0; | |||||
| HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* 停止PWM输出 */ | |||||
| if(Base.PulseNum - NowPulse > 1) | |||||
| { | |||||
| Base.PrePulse = NowPulse; /* 保存之前的脉冲段 */ | |||||
| if(PulseOutput[NowPulse].NextPulse == 0) | |||||
| { | |||||
| NowPulse = NowPulse+ 1; | |||||
| } | |||||
| else | |||||
| { | |||||
| NowPulse = PulseOutput[NowPulse].NextPulse; /* 进入下一段脉冲 */ | |||||
| } | |||||
| Acc = GetAcc(PulseOutput[Base.PrePulse].Frequency, | |||||
| PulseOutput[NowPulse].Frequency, Base.AccCount); /* 计算Acc */ | |||||
| ArrFlag = 1; | |||||
| PulseStart(); //开始产生脉冲 | |||||
| } | |||||
| else | |||||
| { | |||||
| PulseCount = 0; | |||||
| HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* 停止PWM输出 */ | |||||
| } | |||||
| } | |||||
| } | |||||
| if (ArrFlag == 1) | |||||
| { | |||||
| if(PulseCount < Base.AccCount) | |||||
| { | |||||
| SetFrequency(0, PulseOutput[Base.PrePulse].Frequency + PulseCount * Acc); | |||||
| } | |||||
| else | |||||
| { | |||||
| SetFrequency(0, PulseOutput[NowPulse].Frequency); | |||||
| ArrFlag = 0; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endif | |||||
| /** | |||||
| * @brief 掉电中断 | |||||
| * @return 无 | |||||
| */ | |||||
| void HAL_PWR_PVDCallback(void) | |||||
| { | |||||
| OSIntEnter(); /* 进入中断 */ | |||||
| // 检查电压是否低于阈值 | |||||
| if (__HAL_PWR_GET_FLAG(PWR_FLAG_PVDO)) | |||||
| { | |||||
| HAL_GPIO_TogglePin(GPIOH, Y12_Pin); | |||||
| /* 掉电处理内容 */ | |||||
| ModbusSaveSRAM(); | |||||
| } | |||||
| OSIntExit(); /* 退出中断 */ | |||||
| } | |||||
| /** | |||||
| * @brief PVD配置 | |||||
| * @return 无 | |||||
| */ | |||||
| void PVD_Init(void) | |||||
| { | |||||
| PWR_PVDTypeDef PvdStruct; | |||||
| HAL_PWR_EnablePVD(); /* 使能PVD */ | |||||
| PvdStruct.PVDLevel = PWR_PVDLEVEL_5; /* PVD阈值3.1V */ | |||||
| PvdStruct.Mode = PWR_PVD_MODE_IT_RISING; /* 检测掉电 */ | |||||
| HAL_PWR_ConfigPVD(&PvdStruct); | |||||
| HAL_NVIC_SetPriority(PVD_IRQn, 0, 0); /* 配置PVD中断优先级 */ | |||||
| HAL_NVIC_EnableIRQ(PVD_IRQn); /* 使能PVD中断 */ | |||||
| } | |||||
| /* USER CODE END 4 */ | /* USER CODE END 4 */ | ||||
| /** | /** | ||||
| @@ -217,6 +217,7 @@ void TIM2_IRQHandler(void) | |||||
| HAL_TIM_IRQHandler(&htim2); | HAL_TIM_IRQHandler(&htim2); | ||||
| /* USER CODE BEGIN TIM2_IRQn 1 */ | /* USER CODE BEGIN TIM2_IRQn 1 */ | ||||
| HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* 停止PWM输出 */ | |||||
| PulseNum ++; /* 脉冲段数增加 */ | PulseNum ++; /* 脉冲段数增加 */ | ||||
| BaseCNT += TIM2->ARR; | BaseCNT += TIM2->ARR; | ||||
| @@ -236,10 +237,19 @@ void TIM2_IRQHandler(void) | |||||
| } | } | ||||
| /* 准备加减速 */ | /* 准备加减速 */ | ||||
| Acc = GetAcc(PulseOutput[PrePulse].Frequency, | |||||
| PulseOutput[NowPulse].Frequency, Options.AccUpTime); /* 计算加速度 */ | |||||
| ArrFlag = 1; | |||||
| if(PulseOutput[PrePulse].Frequency <= PulseOutput[NowPulse].Frequency) | |||||
| { | |||||
| Acc = GetAcc(PulseOutput[PrePulse].Frequency, | |||||
| PulseOutput[NowPulse].Frequency, Options.AccUpTime); /* 计算加速度 */ | |||||
| } | |||||
| else | |||||
| { | |||||
| Acc = GetAcc(PulseOutput[PrePulse].Frequency, | |||||
| PulseOutput[NowPulse].Frequency, Options.AccDownTime); /* 计算加速度 */ | |||||
| } | |||||
| ArrFlag = 1; | |||||
| SetNextPulse();/* 设置下一次进入中断的脉冲数 */ | SetNextPulse();/* 设置下一次进入中断的脉冲数 */ | ||||
| } | } | ||||
| @@ -26,6 +26,9 @@ | |||||
| TIM_HandleTypeDef htim2; | TIM_HandleTypeDef htim2; | ||||
| TIM_HandleTypeDef htim10; | TIM_HandleTypeDef htim10; | ||||
| TIM_HandleTypeDef htim11; | |||||
| TIM_HandleTypeDef htim13; | |||||
| TIM_HandleTypeDef htim14; | |||||
| /* TIM2 init function */ | /* TIM2 init function */ | ||||
| void MX_TIM2_Init(void) | void MX_TIM2_Init(void) | ||||
| @@ -118,6 +121,129 @@ void MX_TIM10_Init(void) | |||||
| /* USER CODE END TIM10_Init 2 */ | /* USER CODE END TIM10_Init 2 */ | ||||
| HAL_TIM_MspPostInit(&htim10); | HAL_TIM_MspPostInit(&htim10); | ||||
| } | |||||
| /* TIM11 init function */ | |||||
| void MX_TIM11_Init(void) | |||||
| { | |||||
| /* USER CODE BEGIN TIM11_Init 0 */ | |||||
| /* USER CODE END TIM11_Init 0 */ | |||||
| TIM_OC_InitTypeDef sConfigOC = {0}; | |||||
| /* USER CODE BEGIN TIM11_Init 1 */ | |||||
| /* USER CODE END TIM11_Init 1 */ | |||||
| htim11.Instance = TIM11; | |||||
| htim11.Init.Prescaler = 0; | |||||
| htim11.Init.CounterMode = TIM_COUNTERMODE_UP; | |||||
| htim11.Init.Period = 65535; | |||||
| htim11.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; | |||||
| htim11.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; | |||||
| if (HAL_TIM_Base_Init(&htim11) != HAL_OK) | |||||
| { | |||||
| Error_Handler(); | |||||
| } | |||||
| if (HAL_TIM_PWM_Init(&htim11) != HAL_OK) | |||||
| { | |||||
| Error_Handler(); | |||||
| } | |||||
| sConfigOC.OCMode = TIM_OCMODE_PWM1; | |||||
| sConfigOC.Pulse = 0; | |||||
| sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; | |||||
| sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; | |||||
| if (HAL_TIM_PWM_ConfigChannel(&htim11, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) | |||||
| { | |||||
| Error_Handler(); | |||||
| } | |||||
| /* USER CODE BEGIN TIM11_Init 2 */ | |||||
| /* USER CODE END TIM11_Init 2 */ | |||||
| HAL_TIM_MspPostInit(&htim11); | |||||
| } | |||||
| /* TIM13 init function */ | |||||
| void MX_TIM13_Init(void) | |||||
| { | |||||
| /* USER CODE BEGIN TIM13_Init 0 */ | |||||
| /* USER CODE END TIM13_Init 0 */ | |||||
| TIM_OC_InitTypeDef sConfigOC = {0}; | |||||
| /* USER CODE BEGIN TIM13_Init 1 */ | |||||
| /* USER CODE END TIM13_Init 1 */ | |||||
| htim13.Instance = TIM13; | |||||
| htim13.Init.Prescaler = 0; | |||||
| htim13.Init.CounterMode = TIM_COUNTERMODE_UP; | |||||
| htim13.Init.Period = 65535; | |||||
| htim13.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; | |||||
| htim13.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; | |||||
| if (HAL_TIM_Base_Init(&htim13) != HAL_OK) | |||||
| { | |||||
| Error_Handler(); | |||||
| } | |||||
| if (HAL_TIM_PWM_Init(&htim13) != HAL_OK) | |||||
| { | |||||
| Error_Handler(); | |||||
| } | |||||
| sConfigOC.OCMode = TIM_OCMODE_PWM1; | |||||
| sConfigOC.Pulse = 0; | |||||
| sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; | |||||
| sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; | |||||
| if (HAL_TIM_PWM_ConfigChannel(&htim13, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) | |||||
| { | |||||
| Error_Handler(); | |||||
| } | |||||
| /* USER CODE BEGIN TIM13_Init 2 */ | |||||
| /* USER CODE END TIM13_Init 2 */ | |||||
| HAL_TIM_MspPostInit(&htim13); | |||||
| } | |||||
| /* TIM14 init function */ | |||||
| void MX_TIM14_Init(void) | |||||
| { | |||||
| /* USER CODE BEGIN TIM14_Init 0 */ | |||||
| /* USER CODE END TIM14_Init 0 */ | |||||
| TIM_OC_InitTypeDef sConfigOC = {0}; | |||||
| /* USER CODE BEGIN TIM14_Init 1 */ | |||||
| /* USER CODE END TIM14_Init 1 */ | |||||
| htim14.Instance = TIM14; | |||||
| htim14.Init.Prescaler = 0; | |||||
| htim14.Init.CounterMode = TIM_COUNTERMODE_UP; | |||||
| htim14.Init.Period = 65535; | |||||
| htim14.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; | |||||
| htim14.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; | |||||
| if (HAL_TIM_Base_Init(&htim14) != HAL_OK) | |||||
| { | |||||
| Error_Handler(); | |||||
| } | |||||
| if (HAL_TIM_PWM_Init(&htim14) != HAL_OK) | |||||
| { | |||||
| Error_Handler(); | |||||
| } | |||||
| sConfigOC.OCMode = TIM_OCMODE_PWM1; | |||||
| sConfigOC.Pulse = 0; | |||||
| sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; | |||||
| sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; | |||||
| if (HAL_TIM_PWM_ConfigChannel(&htim14, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) | |||||
| { | |||||
| Error_Handler(); | |||||
| } | |||||
| /* USER CODE BEGIN TIM14_Init 2 */ | |||||
| /* USER CODE END TIM14_Init 2 */ | |||||
| HAL_TIM_MspPostInit(&htim14); | |||||
| } | } | ||||
| void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) | void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) | ||||
| @@ -161,6 +287,39 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) | |||||
| /* USER CODE END TIM10_MspInit 1 */ | /* USER CODE END TIM10_MspInit 1 */ | ||||
| } | } | ||||
| else if(tim_baseHandle->Instance==TIM11) | |||||
| { | |||||
| /* USER CODE BEGIN TIM11_MspInit 0 */ | |||||
| /* USER CODE END TIM11_MspInit 0 */ | |||||
| /* TIM11 clock enable */ | |||||
| __HAL_RCC_TIM11_CLK_ENABLE(); | |||||
| /* USER CODE BEGIN TIM11_MspInit 1 */ | |||||
| /* USER CODE END TIM11_MspInit 1 */ | |||||
| } | |||||
| else if(tim_baseHandle->Instance==TIM13) | |||||
| { | |||||
| /* USER CODE BEGIN TIM13_MspInit 0 */ | |||||
| /* USER CODE END TIM13_MspInit 0 */ | |||||
| /* TIM13 clock enable */ | |||||
| __HAL_RCC_TIM13_CLK_ENABLE(); | |||||
| /* USER CODE BEGIN TIM13_MspInit 1 */ | |||||
| /* USER CODE END TIM13_MspInit 1 */ | |||||
| } | |||||
| else if(tim_baseHandle->Instance==TIM14) | |||||
| { | |||||
| /* USER CODE BEGIN TIM14_MspInit 0 */ | |||||
| /* USER CODE END TIM14_MspInit 0 */ | |||||
| /* TIM14 clock enable */ | |||||
| __HAL_RCC_TIM14_CLK_ENABLE(); | |||||
| /* USER CODE BEGIN TIM14_MspInit 1 */ | |||||
| /* USER CODE END TIM14_MspInit 1 */ | |||||
| } | |||||
| } | } | ||||
| void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) | void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) | ||||
| { | { | ||||
| @@ -171,7 +330,6 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) | |||||
| /* USER CODE BEGIN TIM10_MspPostInit 0 */ | /* USER CODE BEGIN TIM10_MspPostInit 0 */ | ||||
| /* USER CODE END TIM10_MspPostInit 0 */ | /* USER CODE END TIM10_MspPostInit 0 */ | ||||
| __HAL_RCC_GPIOF_CLK_ENABLE(); | __HAL_RCC_GPIOF_CLK_ENABLE(); | ||||
| /**TIM10 GPIO Configuration | /**TIM10 GPIO Configuration | ||||
| PF6 ------> TIM10_CH1 | PF6 ------> TIM10_CH1 | ||||
| @@ -187,6 +345,69 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) | |||||
| /* USER CODE END TIM10_MspPostInit 1 */ | /* USER CODE END TIM10_MspPostInit 1 */ | ||||
| } | } | ||||
| else if(timHandle->Instance==TIM11) | |||||
| { | |||||
| /* USER CODE BEGIN TIM11_MspPostInit 0 */ | |||||
| /* USER CODE END TIM11_MspPostInit 0 */ | |||||
| __HAL_RCC_GPIOF_CLK_ENABLE(); | |||||
| /**TIM11 GPIO Configuration | |||||
| PF7 ------> TIM11_CH1 | |||||
| */ | |||||
| GPIO_InitStruct.Pin = GPIO_PIN_7; | |||||
| GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |||||
| GPIO_InitStruct.Pull = GPIO_NOPULL; | |||||
| GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; | |||||
| GPIO_InitStruct.Alternate = GPIO_AF3_TIM11; | |||||
| HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); | |||||
| /* USER CODE BEGIN TIM11_MspPostInit 1 */ | |||||
| /* USER CODE END TIM11_MspPostInit 1 */ | |||||
| } | |||||
| else if(timHandle->Instance==TIM13) | |||||
| { | |||||
| /* USER CODE BEGIN TIM13_MspPostInit 0 */ | |||||
| /* USER CODE END TIM13_MspPostInit 0 */ | |||||
| __HAL_RCC_GPIOF_CLK_ENABLE(); | |||||
| /**TIM13 GPIO Configuration | |||||
| PF8 ------> TIM13_CH1 | |||||
| */ | |||||
| GPIO_InitStruct.Pin = GPIO_PIN_8; | |||||
| GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |||||
| GPIO_InitStruct.Pull = GPIO_NOPULL; | |||||
| GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; | |||||
| GPIO_InitStruct.Alternate = GPIO_AF9_TIM13; | |||||
| HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); | |||||
| /* USER CODE BEGIN TIM13_MspPostInit 1 */ | |||||
| /* USER CODE END TIM13_MspPostInit 1 */ | |||||
| } | |||||
| else if(timHandle->Instance==TIM14) | |||||
| { | |||||
| /* USER CODE BEGIN TIM14_MspPostInit 0 */ | |||||
| /* USER CODE END TIM14_MspPostInit 0 */ | |||||
| __HAL_RCC_GPIOF_CLK_ENABLE(); | |||||
| /**TIM14 GPIO Configuration | |||||
| PF9 ------> TIM14_CH1 | |||||
| */ | |||||
| GPIO_InitStruct.Pin = GPIO_PIN_9; | |||||
| GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |||||
| GPIO_InitStruct.Pull = GPIO_NOPULL; | |||||
| GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; | |||||
| GPIO_InitStruct.Alternate = GPIO_AF9_TIM14; | |||||
| HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); | |||||
| /* USER CODE BEGIN TIM14_MspPostInit 1 */ | |||||
| /* USER CODE END TIM14_MspPostInit 1 */ | |||||
| } | |||||
| } | } | ||||
| @@ -223,6 +444,39 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) | |||||
| /* USER CODE END TIM10_MspDeInit 1 */ | /* USER CODE END TIM10_MspDeInit 1 */ | ||||
| } | } | ||||
| else if(tim_baseHandle->Instance==TIM11) | |||||
| { | |||||
| /* USER CODE BEGIN TIM11_MspDeInit 0 */ | |||||
| /* USER CODE END TIM11_MspDeInit 0 */ | |||||
| /* Peripheral clock disable */ | |||||
| __HAL_RCC_TIM11_CLK_DISABLE(); | |||||
| /* USER CODE BEGIN TIM11_MspDeInit 1 */ | |||||
| /* USER CODE END TIM11_MspDeInit 1 */ | |||||
| } | |||||
| else if(tim_baseHandle->Instance==TIM13) | |||||
| { | |||||
| /* USER CODE BEGIN TIM13_MspDeInit 0 */ | |||||
| /* USER CODE END TIM13_MspDeInit 0 */ | |||||
| /* Peripheral clock disable */ | |||||
| __HAL_RCC_TIM13_CLK_DISABLE(); | |||||
| /* USER CODE BEGIN TIM13_MspDeInit 1 */ | |||||
| /* USER CODE END TIM13_MspDeInit 1 */ | |||||
| } | |||||
| else if(tim_baseHandle->Instance==TIM14) | |||||
| { | |||||
| /* USER CODE BEGIN TIM14_MspDeInit 0 */ | |||||
| /* USER CODE END TIM14_MspDeInit 0 */ | |||||
| /* Peripheral clock disable */ | |||||
| __HAL_RCC_TIM14_CLK_DISABLE(); | |||||
| /* USER CODE BEGIN TIM14_MspDeInit 1 */ | |||||
| /* USER CODE END TIM14_MspDeInit 1 */ | |||||
| } | |||||
| } | } | ||||
| /* USER CODE BEGIN 1 */ | /* USER CODE BEGIN 1 */ | ||||
| @@ -20,7 +20,7 @@ | |||||
| <LeaveTargetRunning>_ 0</LeaveTargetRunning> | <LeaveTargetRunning>_ 0</LeaveTargetRunning> | ||||
| </StLinkDriver> | </StLinkDriver> | ||||
| <DebugChecksum> | <DebugChecksum> | ||||
| <Checksum>2315233233</Checksum> | |||||
| <Checksum>3713707742</Checksum> | |||||
| </DebugChecksum> | </DebugChecksum> | ||||
| <Exceptions> | <Exceptions> | ||||
| <StopOnUncaught>_ 0</StopOnUncaught> | <StopOnUncaught>_ 0</StopOnUncaught> | ||||
| @@ -60,11 +60,12 @@ | |||||
| <regBase0>TIM2_CNT 10</regBase0> | <regBase0>TIM2_CNT 10</regBase0> | ||||
| </Registers> | </Registers> | ||||
| <struct_types> | <struct_types> | ||||
| <Fmt0>Option-AccUpTime 3 0</Fmt0> | |||||
| <Fmt1>Option-InitSpeed 3 0</Fmt1> | |||||
| <Fmt2>Pulse-Frequency 3 0</Fmt2> | |||||
| <Fmt3>Pulse-NextPulse 3 0</Fmt3> | |||||
| <Fmt4>Pulse-PulseCount 3 0</Fmt4> | |||||
| <Fmt0>Option-AccDownTime 3 0</Fmt0> | |||||
| <Fmt1>Option-AccUpTime 3 0</Fmt1> | |||||
| <Fmt2>Option-InitSpeed 3 0</Fmt2> | |||||
| <Fmt3>Pulse-Frequency 3 0</Fmt3> | |||||
| <Fmt4>Pulse-NextPulse 3 0</Fmt4> | |||||
| <Fmt5>Pulse-PulseCount 3 0</Fmt5> | |||||
| </struct_types> | </struct_types> | ||||
| <array_types> | <array_types> | ||||
| <Fmt0>uint8_t[10000] 4 0</Fmt0> | <Fmt0>uint8_t[10000] 4 0</Fmt0> | ||||
| @@ -14,14 +14,15 @@ uint8_t NowPulse; /* | |||||
| uint8_t PrePulse; /* 之前处于第几段脉冲 */ | uint8_t PrePulse; /* 之前处于第几段脉冲 */ | ||||
| uint8_t PulseNum; /* 一共有多少段脉冲 */ | uint8_t PulseNum; /* 一共有多少段脉冲 */ | ||||
| int32_t MAX_Pulse; /* 最多的脉冲数 */ | int32_t MAX_Pulse; /* 最多的脉冲数 */ | ||||
| int32_t AccCount; /* 加速脉冲数 */ | |||||
| int32_t AccUpCount; /* 加速脉冲数 */ | |||||
| int32_t AccDownCount; /* 减速脉冲数 */ | |||||
| int32_t NowMAXPulse; /* 当前要达到的总脉冲 */ | int32_t NowMAXPulse; /* 当前要达到的总脉冲 */ | ||||
| int32_t PulseCount = 0; | int32_t PulseCount = 0; | ||||
| /** | /** | ||||
| * @brief 根据脉冲的频率设置对应的PSC和ARR | * @brief 根据脉冲的频率设置对应的PSC和ARR | ||||
| * @param[in] SentPost 脉冲通道(目前只有通道Y0) | |||||
| * @param[in] SentPost 脉冲通道 | |||||
| * @param[in] Ferquency 脉冲的频率 | * @param[in] Ferquency 脉冲的频率 | ||||
| * @return 无 | * @return 无 | ||||
| */ | */ | ||||
| @@ -31,6 +32,9 @@ void SetFrequency(uint8_t SentPost, uint32_t Frequency) | |||||
| switch(SentPost) | switch(SentPost) | ||||
| { | { | ||||
| case 0: TIM10->ARR = arr, TIM10->PSC = psc, TIM10->CCR1 = arr / 2; break; | case 0: TIM10->ARR = arr, TIM10->PSC = psc, TIM10->CCR1 = arr / 2; break; | ||||
| case 1: TIM11->ARR = arr, TIM11->PSC = psc, TIM11->CCR1 = arr / 2; break; | |||||
| case 2: TIM13->ARR = arr, TIM13->PSC = psc, TIM13->CCR1 = arr / 2; break; | |||||
| case 3: TIM14->ARR = arr, TIM14->PSC = psc, TIM14->CCR1 = arr / 2; break; | |||||
| } | } | ||||
| } | } | ||||
| @@ -66,11 +70,24 @@ void PulseBaseInit(uint8_t StartPulse, uint8_t PulseMod, int32_t MAX_Pulse) | |||||
| MAX_Pulse = MAX_Pulse; | MAX_Pulse = MAX_Pulse; | ||||
| } | } | ||||
| /** | |||||
| * @brief 脉冲开始 | |||||
| * @param[in] StartPulse 起始脉冲段 | |||||
| * @return 无 | |||||
| */ | |||||
| void PulseStart(void) | void PulseStart(void) | ||||
| { | { | ||||
| SetFrequency(Options.DirPost, PulseOutput[NowPulse].Frequency); | |||||
| SetFrequency(Options.SentPost, PulseOutput[NowPulse].Frequency); | |||||
| TIM2->ARR = PulseOutput[NowPulse].PulseCount; | TIM2->ARR = PulseOutput[NowPulse].PulseCount; | ||||
| HAL_TIM_PWM_Start_IT(&htim10, TIM_CHANNEL_1); | |||||
| switch(Options.SentPost) | |||||
| { | |||||
| case 0: HAL_TIM_PWM_Start_IT(&htim10, TIM_CHANNEL_1); break; | |||||
| case 1: HAL_TIM_PWM_Start_IT(&htim11, TIM_CHANNEL_1); break; | |||||
| case 2: HAL_TIM_PWM_Start_IT(&htim13, TIM_CHANNEL_1); break; | |||||
| case 3: HAL_TIM_PWM_Start_IT(&htim14, TIM_CHANNEL_1); break; | |||||
| } | |||||
| } | } | ||||
| /** | /** | ||||
| * @brief 获取加速度 | * @brief 获取加速度 | ||||
| @@ -207,7 +224,7 @@ void PLSROptionLoad(void) | |||||
| uint16_t tempH, tempL; | uint16_t tempH, tempL; | ||||
| Set8_16(&tempH, &Register_H[0x1009], &Register_L[0x1009]); | Set8_16(&tempH, &Register_H[0x1009], &Register_L[0x1009]); | ||||
| Set8_16(&tempL, &Register_H[0x100A], &Register_L[0x100A]); | Set8_16(&tempL, &Register_H[0x100A], &Register_L[0x100A]); | ||||
| Set16_32(&InitSpeed, &tempH, &tempL); | |||||
| Set16_32(&InitSpeed, &tempL, &tempH); | |||||
| /* 数据读取 */ | /* 数据读取 */ | ||||
| Options.SentPost = Register_L[0x1000]; | Options.SentPost = Register_L[0x1000]; | ||||
| @@ -220,8 +237,9 @@ void PLSROptionLoad(void) | |||||
| Options.AllPulse = Register_L[0x1007]; | Options.AllPulse = Register_L[0x1007]; | ||||
| Options.StartPulse = Register_L[0x1008]; | Options.StartPulse = Register_L[0x1008]; | ||||
| Options.InitSpeed = InitSpeed; | Options.InitSpeed = InitSpeed; | ||||
| Options.AccUpTime = Register_L[0x100B]; | |||||
| Options.AccDownTime = Register_L[0x100C]; | |||||
| Options.AccUpTime = (Register_H[0x100B]<< 8) | Register_L[0x100B]; | |||||
| Options.AccDownTime = (Register_H[0x100C]<< 8) | Register_L[0x100C]; | |||||
| } | } | ||||
| void PLSRPluseLoad(void) | void PLSRPluseLoad(void) | ||||
| @@ -250,6 +268,10 @@ void PLSRPluseLoad(void) | |||||
| } | } | ||||
| } | } | ||||
| /** | |||||
| * @brief 保存总的脉冲数至指定的寄存器 | |||||
| * @return 无 | |||||
| */ | |||||
| void CountSave(void) | void CountSave(void) | ||||
| { | { | ||||
| int32_t temp_Count = 0; | int32_t temp_Count = 0; | ||||
| @@ -259,9 +281,18 @@ void CountSave(void) | |||||
| memcpy(&temp_Count, &AllPulseCNT, 4); | memcpy(&temp_Count, &AllPulseCNT, 4); | ||||
| DatH = temp_Count / 0xffff; | DatH = temp_Count / 0xffff; | ||||
| DatL = temp_Count % 0xffff; | DatL = temp_Count % 0xffff; | ||||
| Register_H[0x2001] = DatH / 0xff; | |||||
| Register_L[0x2001] = DatH % 0xff; | |||||
| Register_H[0x2000] = DatL / 0xff; | |||||
| Register_L[0x2000] = DatL % 0xff; | |||||
| } | |||||
| Register_H[0x2001] = (DatH >> 8); | |||||
| Register_L[0x2001] = (DatH & 0x00ff); | |||||
| Register_H[0x2000] = (DatL >> 8); | |||||
| Register_L[0x2000] = (DatL & 0x00ff); | |||||
| } | |||||
| /** | |||||
| * @brief 获取加减速的脉冲数 | |||||
| * @return 无 | |||||
| */ | |||||
| void GetAddCount(void) | |||||
| { | |||||
| AccUpCount = Options.AccUpTime * PulseOutput[NowPulse].Frequency / 1000; | |||||
| AccDownCount = Options.AccDownTime * PulseOutput[NowPulse].Frequency / 1000; | |||||
| } | |||||
| @@ -25,8 +25,8 @@ typedef struct | |||||
| uint8_t AllPulse; ///<<脉冲总段数 | uint8_t AllPulse; ///<<脉冲总段数 | ||||
| uint8_t StartPulse; ///<<起始执行段数 | uint8_t StartPulse; ///<<起始执行段数 | ||||
| uint32_t InitSpeed; ///<<脉冲默认速度 | uint32_t InitSpeed; ///<<脉冲默认速度 | ||||
| uint8_t AccUpTime; ///<<脉冲默认速度加速时间 | |||||
| uint8_t AccDownTime; ///<<脉冲默认速度减速时间 | |||||
| uint16_t AccUpTime; ///<<脉冲默认速度加速时间 | |||||
| uint16_t AccDownTime; ///<<脉冲默认速度减速时间 | |||||
| } Option; | } Option; | ||||
| /* 变量声明 */ | /* 变量声明 */ | ||||
| @@ -37,11 +37,13 @@ extern uint8_t NowPulse; ///<< | |||||
| extern uint8_t PrePulse; ///<< 之前处于第几段脉冲 | extern uint8_t PrePulse; ///<< 之前处于第几段脉冲 | ||||
| extern uint8_t PulseNum; ///<< 一共有多少段脉冲(中断内使用) | extern uint8_t PulseNum; ///<< 一共有多少段脉冲(中断内使用) | ||||
| extern int32_t MAX_Pulse; ///<< 最多的脉冲数 | extern int32_t MAX_Pulse; ///<< 最多的脉冲数 | ||||
| extern int32_t AccCount; ///<<加速脉冲数 | |||||
| extern int32_t AccUpCount; ///<<加速脉冲数 | |||||
| extern int32_t AccDownCount;///<<减速脉冲数 | |||||
| extern int32_t NowMAXPulse; ///<<当前要达到的总脉冲 | extern int32_t NowMAXPulse; ///<<当前要达到的总脉冲 | ||||
| extern int32_t PulseCount; | extern int32_t PulseCount; | ||||
| extern int32_t NextPulseEND; | extern int32_t NextPulseEND; | ||||
| /* 函数声明 */ | /* 函数声明 */ | ||||
| void SetFrequency(uint8_t SentPost, uint32_t Frequency); | void SetFrequency(uint8_t SentPost, uint32_t Frequency); | ||||
| void SetPulse(uint8_t Pulse, uint32_t Ferquency, int32_t Count, uint8_t Direction, int8_t NextPulse); | void SetPulse(uint8_t Pulse, uint32_t Ferquency, int32_t Count, uint8_t Direction, int8_t NextPulse); | ||||
| @@ -54,6 +56,7 @@ void SetNextPulse(void); | |||||
| void PLSROptionLoad(void); | void PLSROptionLoad(void); | ||||
| void PLSRPluseLoad(void); | void PLSRPluseLoad(void); | ||||
| void CountSave(void); | void CountSave(void); | ||||
| void GetAddCount(void); | |||||
| uint32_t GetBase(uint8_t NowPulseNUM); | uint32_t GetBase(uint8_t NowPulseNUM); | ||||
| @@ -129,7 +129,7 @@ void Frequency_Change_PSC_And_ARR(uint32_t Frequency, uint16_t* psc, uint16_t* a | |||||
| else | else | ||||
| { | { | ||||
| *psc = 1; | *psc = 1; | ||||
| *arr = 72000000 / ((*psc) * Frequency); | |||||
| *arr = 36000000 / ((*psc) * Frequency); | |||||
| } | } | ||||
| } | } | ||||
| else | else | ||||
| @@ -36,23 +36,34 @@ Mcu.IP2=RCC | |||||
| Mcu.IP3=SYS | Mcu.IP3=SYS | ||||
| Mcu.IP4=TIM2 | Mcu.IP4=TIM2 | ||||
| Mcu.IP5=TIM10 | Mcu.IP5=TIM10 | ||||
| Mcu.IP6=USART1 | |||||
| Mcu.IPNb=7 | |||||
| Mcu.IP6=TIM11 | |||||
| Mcu.IP7=TIM13 | |||||
| Mcu.IP8=TIM14 | |||||
| Mcu.IP9=USART1 | |||||
| Mcu.IPNb=10 | |||||
| Mcu.Name=STM32F407I(E-G)Tx | Mcu.Name=STM32F407I(E-G)Tx | ||||
| Mcu.Package=LQFP176 | Mcu.Package=LQFP176 | ||||
| Mcu.Pin0=PF6 | Mcu.Pin0=PF6 | ||||
| Mcu.Pin1=PH0-OSC_IN | |||||
| Mcu.Pin10=VP_SYS_VS_Systick | |||||
| Mcu.Pin11=VP_TIM10_VS_ClockSourceINT | |||||
| Mcu.Pin2=PH1-OSC_OUT | |||||
| Mcu.Pin3=PH6 | |||||
| Mcu.Pin4=PH7 | |||||
| Mcu.Pin5=PH8 | |||||
| Mcu.Pin6=PH9 | |||||
| Mcu.Pin7=PA9 | |||||
| Mcu.Pin8=PA10 | |||||
| Mcu.Pin9=PA15 | |||||
| Mcu.PinsNb=12 | |||||
| Mcu.Pin1=PF7 | |||||
| Mcu.Pin10=PA9 | |||||
| Mcu.Pin11=PA10 | |||||
| Mcu.Pin12=PA13 | |||||
| Mcu.Pin13=PA14 | |||||
| Mcu.Pin14=PA15 | |||||
| Mcu.Pin15=VP_SYS_VS_Systick | |||||
| Mcu.Pin16=VP_TIM10_VS_ClockSourceINT | |||||
| Mcu.Pin17=VP_TIM11_VS_ClockSourceINT | |||||
| Mcu.Pin18=VP_TIM13_VS_ClockSourceINT | |||||
| Mcu.Pin19=VP_TIM14_VS_ClockSourceINT | |||||
| Mcu.Pin2=PF8 | |||||
| Mcu.Pin3=PF9 | |||||
| Mcu.Pin4=PH0-OSC_IN | |||||
| Mcu.Pin5=PH1-OSC_OUT | |||||
| Mcu.Pin6=PH6 | |||||
| Mcu.Pin7=PH7 | |||||
| Mcu.Pin8=PH8 | |||||
| Mcu.Pin9=PH9 | |||||
| Mcu.PinsNb=20 | |||||
| Mcu.ThirdPartyNb=0 | Mcu.ThirdPartyNb=0 | ||||
| Mcu.UserConstants= | Mcu.UserConstants= | ||||
| Mcu.UserName=STM32F407IGTx | Mcu.UserName=STM32F407IGTx | ||||
| @@ -75,6 +86,10 @@ NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true | |||||
| NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false | NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false | ||||
| PA10.Mode=Asynchronous | PA10.Mode=Asynchronous | ||||
| PA10.Signal=USART1_RX | PA10.Signal=USART1_RX | ||||
| PA13.Mode=Serial_Wire | |||||
| PA13.Signal=SYS_JTMS-SWDIO | |||||
| PA14.Mode=Serial_Wire | |||||
| PA14.Signal=SYS_JTCK-SWCLK | |||||
| PA15.GPIOParameters=GPIO_Speed | PA15.GPIOParameters=GPIO_Speed | ||||
| PA15.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH | PA15.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH | ||||
| PA15.Locked=true | PA15.Locked=true | ||||
| @@ -83,6 +98,12 @@ PA9.Mode=Asynchronous | |||||
| PA9.Signal=USART1_TX | PA9.Signal=USART1_TX | ||||
| PF6.Locked=true | PF6.Locked=true | ||||
| PF6.Signal=S_TIM10_CH1 | PF6.Signal=S_TIM10_CH1 | ||||
| PF7.Locked=true | |||||
| PF7.Signal=S_TIM11_CH1 | |||||
| PF8.Locked=true | |||||
| PF8.Signal=S_TIM13_CH1 | |||||
| PF9.Locked=true | |||||
| PF9.Signal=S_TIM14_CH1 | |||||
| PH0-OSC_IN.Mode=HSE-External-Oscillator | PH0-OSC_IN.Mode=HSE-External-Oscillator | ||||
| PH0-OSC_IN.Signal=RCC_OSC_IN | PH0-OSC_IN.Signal=RCC_OSC_IN | ||||
| PH1-OSC_OUT.Mode=HSE-External-Oscillator | PH1-OSC_OUT.Mode=HSE-External-Oscillator | ||||
| @@ -132,7 +153,7 @@ ProjectManager.StackSize=0x400 | |||||
| ProjectManager.TargetToolchain=EWARM V8 | ProjectManager.TargetToolchain=EWARM V8 | ||||
| ProjectManager.ToolChainLocation= | ProjectManager.ToolChainLocation= | ||||
| ProjectManager.UnderRoot=false | ProjectManager.UnderRoot=false | ||||
| ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM10_Init-TIM10-false-HAL-true,6-MX_TIM2_Init-TIM2-false-HAL-true | |||||
| ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM10_Init-TIM10-false-HAL-true,6-MX_TIM2_Init-TIM2-false-HAL-true,7-MX_TIM11_Init-TIM11-false-HAL-true,8-MX_TIM13_Init-TIM13-false-HAL-true,9-MX_TIM14_Init-TIM14-false-HAL-true | |||||
| RCC.48MHZClocksFreq_Value=36000000 | RCC.48MHZClocksFreq_Value=36000000 | ||||
| RCC.AHBFreq_Value=72000000 | RCC.AHBFreq_Value=72000000 | ||||
| RCC.APB1CLKDivider=RCC_HCLK_DIV2 | RCC.APB1CLKDivider=RCC_HCLK_DIV2 | ||||
| @@ -169,6 +190,12 @@ RCC.VCOOutputFreq_Value=144000000 | |||||
| RCC.VcooutputI2S=192000000 | RCC.VcooutputI2S=192000000 | ||||
| SH.S_TIM10_CH1.0=TIM10_CH1,PWM Generation1 CH1 | SH.S_TIM10_CH1.0=TIM10_CH1,PWM Generation1 CH1 | ||||
| SH.S_TIM10_CH1.ConfNb=1 | SH.S_TIM10_CH1.ConfNb=1 | ||||
| SH.S_TIM11_CH1.0=TIM11_CH1,PWM Generation1 CH1 | |||||
| SH.S_TIM11_CH1.ConfNb=1 | |||||
| SH.S_TIM13_CH1.0=TIM13_CH1,PWM Generation1 CH1 | |||||
| SH.S_TIM13_CH1.ConfNb=1 | |||||
| SH.S_TIM14_CH1.0=TIM14_CH1,PWM Generation1 CH1 | |||||
| SH.S_TIM14_CH1.ConfNb=1 | |||||
| SH.S_TIM2_CH1_ETR.0=TIM2_ETR,ClockSourceETR_Mode2 | SH.S_TIM2_CH1_ETR.0=TIM2_ETR,ClockSourceETR_Mode2 | ||||
| SH.S_TIM2_CH1_ETR.ConfNb=1 | SH.S_TIM2_CH1_ETR.ConfNb=1 | ||||
| TIM10.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE | TIM10.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE | ||||
| @@ -177,6 +204,12 @@ TIM10.IPParameters=Channel,Prescaler,AutoReloadPreload,Pulse,OCPolarity_1 | |||||
| TIM10.OCPolarity_1=TIM_OCPOLARITY_LOW | TIM10.OCPolarity_1=TIM_OCPOLARITY_LOW | ||||
| TIM10.Prescaler=72 | TIM10.Prescaler=72 | ||||
| TIM10.Pulse=32767 | TIM10.Pulse=32767 | ||||
| TIM11.Channel=TIM_CHANNEL_1 | |||||
| TIM11.IPParameters=Channel | |||||
| TIM13.Channel=TIM_CHANNEL_1 | |||||
| TIM13.IPParameters=Channel | |||||
| TIM14.Channel=TIM_CHANNEL_1 | |||||
| TIM14.IPParameters=Channel | |||||
| USART1.BaudRate=19200 | USART1.BaudRate=19200 | ||||
| USART1.IPParameters=VirtualMode,BaudRate,Parity,WordLength | USART1.IPParameters=VirtualMode,BaudRate,Parity,WordLength | ||||
| USART1.Parity=PARITY_ODD | USART1.Parity=PARITY_ODD | ||||
| @@ -186,4 +219,10 @@ VP_SYS_VS_Systick.Mode=SysTick | |||||
| VP_SYS_VS_Systick.Signal=SYS_VS_Systick | VP_SYS_VS_Systick.Signal=SYS_VS_Systick | ||||
| VP_TIM10_VS_ClockSourceINT.Mode=Enable_Timer | VP_TIM10_VS_ClockSourceINT.Mode=Enable_Timer | ||||
| VP_TIM10_VS_ClockSourceINT.Signal=TIM10_VS_ClockSourceINT | VP_TIM10_VS_ClockSourceINT.Signal=TIM10_VS_ClockSourceINT | ||||
| VP_TIM11_VS_ClockSourceINT.Mode=Enable_Timer | |||||
| VP_TIM11_VS_ClockSourceINT.Signal=TIM11_VS_ClockSourceINT | |||||
| VP_TIM13_VS_ClockSourceINT.Mode=Enable_Timer | |||||
| VP_TIM13_VS_ClockSourceINT.Signal=TIM13_VS_ClockSourceINT | |||||
| VP_TIM14_VS_ClockSourceINT.Mode=Enable_Timer | |||||
| VP_TIM14_VS_ClockSourceINT.Signal=TIM14_VS_ClockSourceINT | |||||
| board=custom | board=custom | ||||