Browse Source

update

master
zhaohe 2 years ago
parent
commit
3a24d3d45a
  1. 2
      .cproject
  2. 4
      .settings/language.settings.xml
  3. 3
      Core/Inc/stm32f4xx_it.h
  4. 3
      Core/Inc/usart.h
  5. 6
      Core/Src/dma.c
  6. 2
      Core/Src/gpio.c
  7. 1
      Core/Src/main.c
  8. 45
      Core/Src/stm32f4xx_it.c
  9. 133
      Core/Src/usart.c
  10. 58
      Intelligent_winding_robot_main_board.ioc
  11. 2
      sdk
  12. 133
      usrc/main.cpp

2
.cproject

@ -79,7 +79,7 @@
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS"/>
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F"/>
</option>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.nortti.853156576" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.nortti" value="false" valueType="boolean"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.nortti.853156576" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.nortti" useByScannerDiscovery="false" value="false" valueType="boolean"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.input.cpp.1241273646" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.input.cpp"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.52815412" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker"/>

4
.settings/language.settings.xml

@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1057391452571803630" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-622244553529563973" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
@ -16,7 +16,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1057391452571803630" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-622244553529563973" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>

3
Core/Inc/stm32f4xx_it.h

@ -52,6 +52,7 @@ void MemManage_Handler(void);
void BusFault_Handler(void);
void UsageFault_Handler(void);
void DebugMon_Handler(void);
void DMA1_Stream0_IRQHandler(void);
void DMA1_Stream1_IRQHandler(void);
void DMA1_Stream3_IRQHandler(void);
void DMA1_Stream5_IRQHandler(void);
@ -63,6 +64,8 @@ void CAN1_SCE_IRQHandler(void);
void TIM1_UP_TIM10_IRQHandler(void);
void TIM1_TRG_COM_TIM11_IRQHandler(void);
void USART1_IRQHandler(void);
void DMA1_Stream7_IRQHandler(void);
void UART5_IRQHandler(void);
void TIM6_DAC_IRQHandler(void);
void TIM7_IRQHandler(void);
/* USER CODE BEGIN EFP */

3
Core/Inc/usart.h

@ -32,6 +32,8 @@ extern "C" {
/* USER CODE END Includes */
extern UART_HandleTypeDef huart5;
extern UART_HandleTypeDef huart1;
extern UART_HandleTypeDef huart2;
@ -42,6 +44,7 @@ extern UART_HandleTypeDef huart3;
/* USER CODE END Private defines */
void MX_UART5_Init(void);
void MX_USART1_UART_Init(void);
void MX_USART2_UART_Init(void);
void MX_USART3_UART_Init(void);

6
Core/Src/dma.c

@ -43,6 +43,9 @@ void MX_DMA_Init(void)
__HAL_RCC_DMA1_CLK_ENABLE();
/* DMA interrupt init */
/* DMA1_Stream0_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);
/* DMA1_Stream1_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);
@ -55,6 +58,9 @@ void MX_DMA_Init(void)
/* DMA1_Stream6_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream6_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream6_IRQn);
/* DMA1_Stream7_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream7_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream7_IRQn);
}

2
Core/Src/gpio.c

@ -45,6 +45,8 @@ void MX_GPIO_Init(void)
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
}

1
Core/Src/main.c

@ -99,6 +99,7 @@ int main(void)
MX_USART2_UART_Init();
MX_TIM10_Init();
MX_USART3_UART_Init();
MX_UART5_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */

45
Core/Src/stm32f4xx_it.c

@ -59,10 +59,13 @@ extern CAN_HandleTypeDef hcan1;
extern TIM_HandleTypeDef htim6;
extern TIM_HandleTypeDef htim7;
extern TIM_HandleTypeDef htim10;
extern DMA_HandleTypeDef hdma_uart5_rx;
extern DMA_HandleTypeDef hdma_uart5_tx;
extern DMA_HandleTypeDef hdma_usart2_rx;
extern DMA_HandleTypeDef hdma_usart2_tx;
extern DMA_HandleTypeDef hdma_usart3_rx;
extern DMA_HandleTypeDef hdma_usart3_tx;
extern UART_HandleTypeDef huart5;
extern UART_HandleTypeDef huart1;
extern TIM_HandleTypeDef htim11;
@ -169,6 +172,20 @@ void DebugMon_Handler(void)
/******************************************************************************/
/**
* @brief This function handles DMA1 stream0 global interrupt.
*/
void DMA1_Stream0_IRQHandler(void)
{
/* USER CODE BEGIN DMA1_Stream0_IRQn 0 */
/* USER CODE END DMA1_Stream0_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_uart5_rx);
/* USER CODE BEGIN DMA1_Stream0_IRQn 1 */
/* USER CODE END DMA1_Stream0_IRQn 1 */
}
/**
* @brief This function handles DMA1 stream1 global interrupt.
*/
void DMA1_Stream1_IRQHandler(void)
@ -323,6 +340,34 @@ void USART1_IRQHandler(void)
}
/**
* @brief This function handles DMA1 stream7 global interrupt.
*/
void DMA1_Stream7_IRQHandler(void)
{
/* USER CODE BEGIN DMA1_Stream7_IRQn 0 */
/* USER CODE END DMA1_Stream7_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_uart5_tx);
/* USER CODE BEGIN DMA1_Stream7_IRQn 1 */
/* USER CODE END DMA1_Stream7_IRQn 1 */
}
/**
* @brief This function handles UART5 global interrupt.
*/
void UART5_IRQHandler(void)
{
/* USER CODE BEGIN UART5_IRQn 0 */
/* USER CODE END UART5_IRQn 0 */
HAL_UART_IRQHandler(&huart5);
/* USER CODE BEGIN UART5_IRQn 1 */
/* USER CODE END UART5_IRQn 1 */
}
/**
* @brief This function handles TIM6 global interrupt, DAC1 and DAC2 underrun error interrupts.
*/
void TIM6_DAC_IRQHandler(void)

133
Core/Src/usart.c

@ -24,14 +24,45 @@
/* USER CODE END 0 */
UART_HandleTypeDef huart5;
UART_HandleTypeDef huart1;
UART_HandleTypeDef huart2;
UART_HandleTypeDef huart3;
DMA_HandleTypeDef hdma_uart5_rx;
DMA_HandleTypeDef hdma_uart5_tx;
DMA_HandleTypeDef hdma_usart2_rx;
DMA_HandleTypeDef hdma_usart2_tx;
DMA_HandleTypeDef hdma_usart3_rx;
DMA_HandleTypeDef hdma_usart3_tx;
/* UART5 init function */
void MX_UART5_Init(void)
{
/* USER CODE BEGIN UART5_Init 0 */
/* USER CODE END UART5_Init 0 */
/* USER CODE BEGIN UART5_Init 1 */
/* USER CODE END UART5_Init 1 */
huart5.Instance = UART5;
huart5.Init.BaudRate = 115200;
huart5.Init.WordLength = UART_WORDLENGTH_8B;
huart5.Init.StopBits = UART_STOPBITS_1;
huart5.Init.Parity = UART_PARITY_NONE;
huart5.Init.Mode = UART_MODE_TX_RX;
huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart5.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart5) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN UART5_Init 2 */
/* USER CODE END UART5_Init 2 */
}
/* USART1 init function */
void MX_USART1_UART_Init(void)
@ -124,7 +155,79 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(uartHandle->Instance==USART1)
if(uartHandle->Instance==UART5)
{
/* USER CODE BEGIN UART5_MspInit 0 */
/* USER CODE END UART5_MspInit 0 */
/* UART5 clock enable */
__HAL_RCC_UART5_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
/**UART5 GPIO Configuration
PC12 ------> UART5_TX
PD2 ------> UART5_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF8_UART5;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF8_UART5;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* UART5 DMA Init */
/* UART5_RX Init */
hdma_uart5_rx.Instance = DMA1_Stream0;
hdma_uart5_rx.Init.Channel = DMA_CHANNEL_4;
hdma_uart5_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_uart5_rx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_uart5_rx.Init.MemInc = DMA_MINC_ENABLE;
hdma_uart5_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_uart5_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_uart5_rx.Init.Mode = DMA_NORMAL;
hdma_uart5_rx.Init.Priority = DMA_PRIORITY_LOW;
hdma_uart5_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
if (HAL_DMA_Init(&hdma_uart5_rx) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(uartHandle,hdmarx,hdma_uart5_rx);
/* UART5_TX Init */
hdma_uart5_tx.Instance = DMA1_Stream7;
hdma_uart5_tx.Init.Channel = DMA_CHANNEL_4;
hdma_uart5_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
hdma_uart5_tx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_uart5_tx.Init.MemInc = DMA_MINC_ENABLE;
hdma_uart5_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_uart5_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_uart5_tx.Init.Mode = DMA_NORMAL;
hdma_uart5_tx.Init.Priority = DMA_PRIORITY_LOW;
hdma_uart5_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
if (HAL_DMA_Init(&hdma_uart5_tx) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(uartHandle,hdmatx,hdma_uart5_tx);
/* UART5 interrupt Init */
HAL_NVIC_SetPriority(UART5_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(UART5_IRQn);
/* USER CODE BEGIN UART5_MspInit 1 */
/* USER CODE END UART5_MspInit 1 */
}
else if(uartHandle->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspInit 0 */
@ -278,7 +381,33 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
{
if(uartHandle->Instance==USART1)
if(uartHandle->Instance==UART5)
{
/* USER CODE BEGIN UART5_MspDeInit 0 */
/* USER CODE END UART5_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_UART5_CLK_DISABLE();
/**UART5 GPIO Configuration
PC12 ------> UART5_TX
PD2 ------> UART5_RX
*/
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_12);
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
/* UART5 DMA DeInit */
HAL_DMA_DeInit(uartHandle->hdmarx);
HAL_DMA_DeInit(uartHandle->hdmatx);
/* UART5 interrupt Deinit */
HAL_NVIC_DisableIRQ(UART5_IRQn);
/* USER CODE BEGIN UART5_MspDeInit 1 */
/* USER CODE END UART5_MspDeInit 1 */
}
else if(uartHandle->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspDeInit 0 */

58
Intelligent_winding_robot_main_board.ioc

@ -18,7 +18,29 @@ Dma.Request0=USART3_RX
Dma.Request1=USART3_TX
Dma.Request2=USART2_RX
Dma.Request3=USART2_TX
Dma.RequestsNb=4
Dma.Request4=UART5_RX
Dma.Request5=UART5_TX
Dma.RequestsNb=6
Dma.UART5_RX.4.Direction=DMA_PERIPH_TO_MEMORY
Dma.UART5_RX.4.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.UART5_RX.4.Instance=DMA1_Stream0
Dma.UART5_RX.4.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.UART5_RX.4.MemInc=DMA_MINC_ENABLE
Dma.UART5_RX.4.Mode=DMA_NORMAL
Dma.UART5_RX.4.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.UART5_RX.4.PeriphInc=DMA_PINC_DISABLE
Dma.UART5_RX.4.Priority=DMA_PRIORITY_LOW
Dma.UART5_RX.4.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.UART5_TX.5.Direction=DMA_MEMORY_TO_PERIPH
Dma.UART5_TX.5.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.UART5_TX.5.Instance=DMA1_Stream7
Dma.UART5_TX.5.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.UART5_TX.5.MemInc=DMA_MINC_ENABLE
Dma.UART5_TX.5.Mode=DMA_NORMAL
Dma.UART5_TX.5.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.UART5_TX.5.PeriphInc=DMA_PINC_DISABLE
Dma.UART5_TX.5.Priority=DMA_PRIORITY_LOW
Dma.UART5_TX.5.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART2_RX.2.Direction=DMA_PERIPH_TO_MEMORY
Dma.USART2_RX.2.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART2_RX.2.Instance=DMA1_Stream5
@ -72,8 +94,9 @@ Mcu.CPN=STM32F407ZGT6
Mcu.Family=STM32F4
Mcu.IP0=CAN1
Mcu.IP1=DMA
Mcu.IP10=USART2
Mcu.IP11=USART3
Mcu.IP10=USART1
Mcu.IP11=USART2
Mcu.IP12=USART3
Mcu.IP2=FREERTOS
Mcu.IP3=NVIC
Mcu.IP4=RCC
@ -81,17 +104,19 @@ Mcu.IP5=SYS
Mcu.IP6=TIM6
Mcu.IP7=TIM7
Mcu.IP8=TIM10
Mcu.IP9=USART1
Mcu.IPNb=12
Mcu.IP9=UART5
Mcu.IPNb=13
Mcu.Name=STM32F407Z(E-G)Tx
Mcu.Package=LQFP144
Mcu.Pin0=PA2
Mcu.Pin1=PA3
Mcu.Pin10=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin11=VP_SYS_VS_tim11
Mcu.Pin12=VP_TIM6_VS_ClockSourceINT
Mcu.Pin13=VP_TIM7_VS_ClockSourceINT
Mcu.Pin14=VP_TIM10_VS_ClockSourceINT
Mcu.Pin10=PC12
Mcu.Pin11=PD2
Mcu.Pin12=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin13=VP_SYS_VS_tim11
Mcu.Pin14=VP_TIM6_VS_ClockSourceINT
Mcu.Pin15=VP_TIM7_VS_ClockSourceINT
Mcu.Pin16=VP_TIM10_VS_ClockSourceINT
Mcu.Pin2=PB10
Mcu.Pin3=PB11
Mcu.Pin4=PA9
@ -100,7 +125,7 @@ Mcu.Pin6=PA11
Mcu.Pin7=PA12
Mcu.Pin8=PA13
Mcu.Pin9=PA14
Mcu.PinsNb=15
Mcu.PinsNb=17
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F407ZGTx
@ -111,10 +136,12 @@ NVIC.CAN1_RX0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.CAN1_RX1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.CAN1_SCE_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.CAN1_TX_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.DMA1_Stream0_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA1_Stream1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA1_Stream3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA1_Stream5_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA1_Stream6_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA1_Stream7_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
@ -133,6 +160,7 @@ NVIC.TIM6_DAC_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.TIM7_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.TimeBase=TIM1_TRG_COM_TIM11_IRQn
NVIC.TimeBaseIP=TIM11
NVIC.UART5_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.USART1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
PA10.Mode=Asynchronous
@ -155,6 +183,10 @@ PB10.Mode=Asynchronous
PB10.Signal=USART3_TX
PB11.Mode=Asynchronous
PB11.Signal=USART3_RX
PC12.Mode=Asynchronous
PC12.Signal=UART5_TX
PD2.Mode=Asynchronous
PD2.Signal=UART5_RX
PinOutPanel.RotationAngle=0
ProjectManager.AskForMigrate=true
ProjectManager.BackupPrevious=false
@ -186,7 +218,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=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_CAN1_Init-CAN1-false-HAL-true,5-MX_TIM6_Init-TIM6-false-HAL-true,6-MX_TIM7_Init-TIM7-false-HAL-true,7-MX_USART1_UART_Init-USART1-false-HAL-true,8-MX_USART2_UART_Init-USART2-false-HAL-true,9-MX_TIM10_Init-TIM10-false-HAL-true,10-MX_USART3_UART_Init-USART3-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_CAN1_Init-CAN1-false-HAL-true,5-MX_TIM6_Init-TIM6-false-HAL-true,6-MX_TIM7_Init-TIM7-false-HAL-true,7-MX_USART1_UART_Init-USART1-false-HAL-true,8-MX_USART2_UART_Init-USART2-false-HAL-true,9-MX_TIM10_Init-TIM10-false-HAL-true,10-MX_USART3_UART_Init-USART3-false-HAL-true,11-MX_UART5_Init-UART5-false-HAL-true
RCC.48MHZClocksFreq_Value=72000000
RCC.AHBFreq_Value=144000000
RCC.APB1CLKDivider=RCC_HCLK_DIV4
@ -219,6 +251,8 @@ RCC.VCOI2SOutputFreq_Value=384000000
RCC.VCOInputFreq_Value=2000000
RCC.VCOOutputFreq_Value=288000000
RCC.VcooutputI2S=192000000
UART5.IPParameters=VirtualMode
UART5.VirtualMode=Asynchronous
USART1.IPParameters=VirtualMode
USART1.VirtualMode=VM_ASYNC
USART2.IPParameters=VirtualMode

2
sdk

@ -1 +1 @@
Subproject commit 1a999a25f569cc1b6a52203f6114fa0c34f2ac9c
Subproject commit 089069f6ef3ae015b315835f83f520e800b785b1

133
usrc/main.cpp

@ -7,7 +7,7 @@
#include "feite_servo_motor.hpp"
#include "sdk/os/zos.hpp"
//
#include "sdk\components\cmdscheduler\cmd_scheduler.hpp"
// #include "sdk\components\cmdscheduler\cmd_scheduler.hpp"
#include "sdk\components\eq_20_asb_motor\eq20_servomotor.hpp"
#include "sdk\components\iflytop_can_slave_module_master_end\stepmotor.hpp"
#include "sdk\components\iflytop_can_slave_v1\iflytop_can_master.hpp"
@ -16,9 +16,8 @@
#include "sdk\components\zcancmder\zcanreceiver_master.hpp"
//
#include "sdk\components/step_motor_ctrl_module/step_motor_ctrl_script_cmder_module.hpp"
#include "sdk\components/xy_robot_ctrl_module/xy_robot_script_cmder_module.hpp"
#include "sdk\components\cmdscheduler\cmd_scheduler_v2.hpp"
#include "sdk\components\eq_20_asb_motor\script_cmder_eq20_servomotor.hpp"
#include "sdk\components\mini_servo_motor\mini_servo_motor_ctrl_module.hpp"
#include "sdk\components\mini_servo_motor\scirpt_cmder_mini_servo_motor_ctrl_module.hpp"
@ -27,6 +26,10 @@
// #include "sdk\components\zcancmder_master_module/zcan_master_step_motor_ctrl_module.hpp"
// #include "sdk\components\zcancmder_master_module\zcan_xy_robot_master_module.hpp"
#include "sdk\components\zprotocol_helper\micro_computer_module_device_script_cmder_paser.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\protocol_proxy.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\zmodule_device_manager.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\zmodule_device_script_cmder_paser.hpp"
#define TAG "main"
namespace iflytop {
Main gmain;
@ -94,7 +97,7 @@ static StepMotor45::cfg_t cfg3 = {
.driverPin = {PG6, PG7, PG8, PC6},
.driverPinMirror = true,
};
#if 0
static StepMotor45::cfg_t cfg4 = {
.max_pos = -1,
.enable_zero_limit = false,
@ -132,36 +135,31 @@ static StepMotor45::cfg_t cfg6 = {
.driverPin = {PC12, PD3, PD5, PD7},
.driverPinMirror = true,
};
#endif
namespace iflytop {
/*******************************************************************************
* *
*******************************************************************************/
ZCanCommnaderMaster m_zcanCommnaderMaster;
CmdScheduler g_cmdScheduler;
ModbusBlockHost g_modbusblockhost;
FeiTeServoMotor g_feiteservomotor_bus;
CmdSchedulerV2 g_cmdScheduler; // 串口字符串指令总线
ZCanCommnaderMaster m_zcanCommnaderMaster; // can总线
ModbusBlockHost g_modbusblockhost; // modbus总线
FeiTeServoMotor g_feiteservomotor_bus; // 飞特舵机总线
ZModuleDeviceManager g_zmodule_device_manager; // 用于管理所有的设备
MicroComputerModuleDeviceScriptCmderPaser g_zmodule_device_script_cmder_paser; // 用于解析所有的设备指令
StepMotor45Scheduler step_motor45_scheduler; // 45步进电机调度器
/*******************************************************************************
* *
*******************************************************************************/
StepMotor45 g_step_motor45[7];
Eq20ServoMotor g_main_servo_motor;
StepMotor45 g_step_motor45[7];
MiniRobotCtrlModule g_mini_servo[6];
/*******************************************************************************
* CAN设备 *
*******************************************************************************/
I_XYRobotCtrlModule* g_xyrobotctrlmodule = nullptr;
I_StepMotorCtrlModule* g_z_step_motor = nullptr;
/*******************************************************************************
* *
*******************************************************************************/
StepMotorCtrlScriptCmderModule g_step_motor_ctrl_script_cmder_module;
XYRobotScriptCmderModule g_script_xyrobot;
ScriptCmderEq20Servomotor g_script_eq20servomotor;
ScirptCmderMiniServoMotorCtrlModule g_script_mini_servo_motor_ctrl_module;
ScriptCmderStepMotor45 g_script_step_motor45;
ZIProtocolProxy g_xyrobotctrlmodule;
ZIProtocolProxy g_z_step_motor;
} // namespace iflytop
@ -181,75 +179,54 @@ void Main::run() {
*******************************************************************************/
chip_init(&chipcfg);
zos_cfg_t zoscfg;
zos_init(&zoscfg);
/*******************************************************************************
* 线 *
*******************************************************************************/
// 指令总线
g_cmdScheduler.initialize(&DEBUG_UART, 1000);
// can总线
auto* cfg = m_zcanCommnaderMaster.createCFG();
m_zcanCommnaderMaster.init(cfg);
// 飞特舵机总线
g_feiteservomotor_bus.initialize(&huart3, &hdma_usart3_rx, &hdma_usart3_tx);
// modbus总线
g_modbusblockhost.initialize(&huart2, &hdma_usart2_tx, &hdma_usart2_rx);
g_main_servo_motor.init(&g_modbusblockhost, 1);
g_cmdScheduler.initialize(&DEBUG_UART, 1000); // 串口字符串指令总线
auto* cfg = m_zcanCommnaderMaster.createCFG(); // can总线配置
m_zcanCommnaderMaster.init(cfg); // can总线
g_modbusblockhost.initialize(&huart2, &hdma_usart2_tx, &hdma_usart2_rx); // modbus总线
g_feiteservomotor_bus.initialize(&huart3, &hdma_usart3_rx, &hdma_usart3_tx); // 飞特舵机总线
step_motor45_scheduler.initialize(&htim10);
// 设备管理器初始化
g_zmodule_device_manager.initialize(&m_zcanCommnaderMaster);
// 设备指令解析器初始化
g_zmodule_device_script_cmder_paser.initialize(&g_cmdScheduler, &g_zmodule_device_manager);
/*******************************************************************************
* *
*******************************************************************************/
// g_z_step_motor = zcancmder_master::create_zcan_master_step_motor_ctrl_module(&m_zcanCommnaderMaster, 1);
// ZASSERT(g_z_step_motor != nullptr);
// g_xyrobotctrlmodule = zcancmder_master::create_xyrobot_ctrl_module(&m_zcanCommnaderMaster, 1);
g_mini_servo[0].initialize(1, &g_feiteservomotor_bus, 1);
g_mini_servo[1].initialize(2, &g_feiteservomotor_bus, 2);
g_mini_servo[2].initialize(3, &g_feiteservomotor_bus, 3);
g_mini_servo[3].initialize(4, &g_feiteservomotor_bus, 4);
g_mini_servo[4].initialize(5, &g_feiteservomotor_bus, 5);
g_mini_servo[5].initialize(6, &g_feiteservomotor_bus, 6);
StepMotor45Scheduler step_motor45_scheduler;
step_motor45_scheduler.initialize(&htim10);
g_step_motor45[0].initialize(1, &step_motor45_scheduler, cfg1);
g_step_motor45[1].initialize(2, &step_motor45_scheduler, cfg2);
g_step_motor45[2].initialize(3, &step_motor45_scheduler, cfg3);
g_step_motor45[3].initialize(4, &step_motor45_scheduler, cfg4);
g_step_motor45[4].initialize(5, &step_motor45_scheduler, cfg5);
g_step_motor45[5].initialize(6, &step_motor45_scheduler, cfg6);
g_main_servo_motor.init(2, &g_modbusblockhost, 1);
g_xyrobotctrlmodule.initialize(3, &m_zcanCommnaderMaster);
g_z_step_motor.initialize(4, &m_zcanCommnaderMaster);
g_mini_servo[0].initialize(11, &g_feiteservomotor_bus, 1);
g_mini_servo[1].initialize(12, &g_feiteservomotor_bus, 2);
g_mini_servo[2].initialize(13, &g_feiteservomotor_bus, 3);
g_mini_servo[3].initialize(14, &g_feiteservomotor_bus, 4);
g_mini_servo[4].initialize(15, &g_feiteservomotor_bus, 5);
g_mini_servo[5].initialize(16, &g_feiteservomotor_bus, 6);
g_step_motor45[0].initialize(21, &step_motor45_scheduler, cfg1);
g_step_motor45[1].initialize(22, &step_motor45_scheduler, cfg2);
g_step_motor45[2].initialize(23, &step_motor45_scheduler, cfg3);
step_motor45_scheduler.start();
/*******************************************************************************
* CMD *
*******************************************************************************/
g_script_eq20servomotor.initialize(&g_cmdScheduler);
g_script_eq20servomotor.regmodule(1, &g_main_servo_motor);
g_step_motor_ctrl_script_cmder_module.initialize(&g_cmdScheduler);
g_step_motor_ctrl_script_cmder_module.regmodule(1, g_z_step_motor);
g_script_xyrobot.initialize(&g_cmdScheduler);
g_script_xyrobot.regmodule(1, g_xyrobotctrlmodule);
g_script_mini_servo_motor_ctrl_module.initialize(&g_cmdScheduler);
g_script_mini_servo_motor_ctrl_module.regmodule(1, &g_mini_servo[0]);
g_script_mini_servo_motor_ctrl_module.regmodule(2, &g_mini_servo[1]);
g_script_mini_servo_motor_ctrl_module.regmodule(3, &g_mini_servo[2]);
g_script_mini_servo_motor_ctrl_module.regmodule(4, &g_mini_servo[3]);
g_script_mini_servo_motor_ctrl_module.regmodule(5, &g_mini_servo[4]);
g_script_mini_servo_motor_ctrl_module.regmodule(6, &g_mini_servo[5]);
g_script_step_motor45.initialize(&g_cmdScheduler);
g_script_step_motor45.regmodule(1, &g_step_motor45[0]);
g_script_step_motor45.regmodule(2, &g_step_motor45[1]);
g_script_step_motor45.regmodule(3, &g_step_motor45[2]);
g_script_step_motor45.regmodule(4, &g_step_motor45[3]);
g_script_step_motor45.regmodule(5, &g_step_motor45[4]);
g_script_step_motor45.regmodule(6, &g_step_motor45[5]);
g_zmodule_device_manager.registerModule(&g_main_servo_motor);
g_zmodule_device_manager.registerModule(&g_xyrobotctrlmodule);
g_zmodule_device_manager.registerModule(&g_z_step_motor);
g_zmodule_device_manager.registerModule(&g_mini_servo[0]);
g_zmodule_device_manager.registerModule(&g_mini_servo[1]);
g_zmodule_device_manager.registerModule(&g_mini_servo[2]);
g_zmodule_device_manager.registerModule(&g_mini_servo[3]);
g_zmodule_device_manager.registerModule(&g_mini_servo[4]);
g_zmodule_device_manager.registerModule(&g_mini_servo[5]);
g_zmodule_device_manager.registerModule(&g_step_motor45[0]);
g_zmodule_device_manager.registerModule(&g_step_motor45[1]);
g_zmodule_device_manager.registerModule(&g_step_motor45[2]);
#if 0
step_motor_cmd_reg();

Loading…
Cancel
Save