Browse Source

update

master
zhaohe 2 years ago
parent
commit
3c084cfdb9
  1. 1
      Core/Inc/stm32f4xx_it.h
  2. 3
      Core/Inc/usart.h
  3. 10
      Core/Src/gpio.c
  4. 1
      Core/Src/main.c
  5. 15
      Core/Src/stm32f4xx_it.c
  6. 92
      Core/Src/usart.c
  7. 44
      README.md
  8. 87
      a8000_cliptip_module.ioc
  9. 2
      a8000_cliptip_module.launch
  10. 2
      sdk
  11. 1
      usrc/board.h
  12. 16
      usrc/main.cpp

1
Core/Inc/stm32f4xx_it.h

@ -61,6 +61,7 @@ void CAN1_SCE_IRQHandler(void);
void TIM1_TRG_COM_TIM11_IRQHandler(void);
void USART2_IRQHandler(void);
void USART3_IRQHandler(void);
void UART4_IRQHandler(void);
void TIM6_DAC_IRQHandler(void);
void TIM7_IRQHandler(void);
void DMA2_Stream2_IRQHandler(void);

3
Core/Inc/usart.h

@ -33,6 +33,8 @@ extern DMA_HandleTypeDef hdma_usart2_rx;
extern DMA_HandleTypeDef hdma_usart2_tx;
/* USER CODE END Includes */
extern UART_HandleTypeDef huart4;
extern UART_HandleTypeDef huart1;
extern UART_HandleTypeDef huart2;
@ -43,6 +45,7 @@ extern UART_HandleTypeDef huart3;
/* USER CODE END Private defines */
void MX_UART4_Init(void);
void MX_USART1_UART_Init(void);
void MX_USART2_UART_Init(void);
void MX_USART3_UART_Init(void);

10
Core/Src/gpio.c

@ -69,12 +69,10 @@ void MX_GPIO_Init(void)
/*Configure GPIO pins : PC13 PC14 PC15 PC1
PC2 PC3 PC5 PC6
PC7 PC8 PC10 PC11
PC12 */
PC7 PC8 PC10 PC12 */
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_1
|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_5|GPIO_PIN_6
|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_10|GPIO_PIN_11
|GPIO_PIN_12;
|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_10|GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
@ -85,8 +83,8 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pins : PA0 PA4 PA8 PA15 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_4|GPIO_PIN_8|GPIO_PIN_15;
/*Configure GPIO pins : PA4 PA8 PA15 */
GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_8|GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

1
Core/Src/main.c

@ -114,6 +114,7 @@ int main(void)
MX_ADC1_Init();
MX_TIM2_Init();
MX_USART2_UART_Init();
MX_UART4_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */

15
Core/Src/stm32f4xx_it.c

@ -63,6 +63,7 @@ extern DMA_HandleTypeDef hdma_usart1_rx;
extern DMA_HandleTypeDef hdma_usart1_tx;
extern DMA_HandleTypeDef hdma_usart2_rx;
extern DMA_HandleTypeDef hdma_usart2_tx;
extern UART_HandleTypeDef huart4;
extern UART_HandleTypeDef huart2;
extern UART_HandleTypeDef huart3;
extern TIM_HandleTypeDef htim11;
@ -297,6 +298,20 @@ void USART3_IRQHandler(void)
}
/**
* @brief This function handles UART4 global interrupt.
*/
void UART4_IRQHandler(void)
{
/* USER CODE BEGIN UART4_IRQn 0 */
/* USER CODE END UART4_IRQn 0 */
HAL_UART_IRQHandler(&huart4);
/* USER CODE BEGIN UART4_IRQn 1 */
/* USER CODE END UART4_IRQn 1 */
}
/**
* @brief This function handles TIM6 global interrupt, DAC1 and DAC2 underrun error interrupts.
*/
void TIM6_DAC_IRQHandler(void)

92
Core/Src/usart.c

@ -24,6 +24,7 @@
/* USER CODE END 0 */
UART_HandleTypeDef huart4;
UART_HandleTypeDef huart1;
UART_HandleTypeDef huart2;
UART_HandleTypeDef huart3;
@ -32,6 +33,34 @@ DMA_HandleTypeDef hdma_usart1_tx;
DMA_HandleTypeDef hdma_usart2_rx;
DMA_HandleTypeDef hdma_usart2_tx;
/* UART4 init function */
void MX_UART4_Init(void)
{
/* USER CODE BEGIN UART4_Init 0 */
/* USER CODE END UART4_Init 0 */
/* USER CODE BEGIN UART4_Init 1 */
/* USER CODE END UART4_Init 1 */
huart4.Instance = UART4;
huart4.Init.BaudRate = 115200;
huart4.Init.WordLength = UART_WORDLENGTH_8B;
huart4.Init.StopBits = UART_STOPBITS_1;
huart4.Init.Parity = UART_PARITY_NONE;
huart4.Init.Mode = UART_MODE_TX_RX;
huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart4.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart4) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN UART4_Init 2 */
/* USER CODE END UART4_Init 2 */
}
/* USART1 init function */
void MX_USART1_UART_Init(void)
@ -74,7 +103,7 @@ void MX_USART2_UART_Init(void)
/* USER CODE END USART2_Init 1 */
huart2.Instance = USART2;
huart2.Init.BaudRate = 115200;
huart2.Init.BaudRate = 38400;
huart2.Init.WordLength = UART_WORDLENGTH_8B;
huart2.Init.StopBits = UART_STOPBITS_1;
huart2.Init.Parity = UART_PARITY_NONE;
@ -124,7 +153,42 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(uartHandle->Instance==USART1)
if(uartHandle->Instance==UART4)
{
/* USER CODE BEGIN UART4_MspInit 0 */
/* USER CODE END UART4_MspInit 0 */
/* UART4 clock enable */
__HAL_RCC_UART4_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
/**UART4 GPIO Configuration
PA0-WKUP ------> UART4_TX
PC11 ------> UART4_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_0;
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_UART4;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_11;
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_UART4;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* UART4 interrupt Init */
HAL_NVIC_SetPriority(UART4_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(UART4_IRQn);
/* USER CODE BEGIN UART4_MspInit 1 */
/* USER CODE END UART4_MspInit 1 */
}
else if(uartHandle->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspInit 0 */
@ -281,7 +345,29 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
{
if(uartHandle->Instance==USART1)
if(uartHandle->Instance==UART4)
{
/* USER CODE BEGIN UART4_MspDeInit 0 */
/* USER CODE END UART4_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_UART4_CLK_DISABLE();
/**UART4 GPIO Configuration
PA0-WKUP ------> UART4_TX
PC11 ------> UART4_RX
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0);
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_11);
/* UART4 interrupt Deinit */
HAL_NVIC_DisableIRQ(UART4_IRQn);
/* USER CODE BEGIN UART4_MspDeInit 1 */
/* USER CODE END UART4_MspDeInit 1 */
}
else if(uartHandle->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspDeInit 0 */

44
README.md

@ -1,44 +0,0 @@
ref:https://iflytop1.feishu.cn/wiki/PbUHwG2o6ikWagkmsiqcTFwAnjp
// 电机通道编号
#define MOTOR_SPI hspi1
#define TMC5130_MOTOR_NUM 1
#define MOTOR0_CSN PA4
#define MOTOR0_ENN PB7
#define MOTOR1_SPI_MODE_SELECT PB4
#define ID0 PC0
#define ID1 PC1
#define ID2 PC2
#define ID3 PC3
#define ID4 PC4
// 调试串口zwsd@192.168.1.3:project_boditech_vidas_a8000_v2/a8000_cliptip_module.git
#define DEBUG_UART huart1
// 调试指示灯
#define DEBUG_LIGHT_GPIO PE2
// 微秒延迟定时器,注意该延时定时器需要按照以下文档进行配置
// http://192.168.1.3:3000/zwikipedia/iflytop_wikipedia/src/branch/master/doc/stm32cubemx_us_timer.md
#define DELAY_US_TIMER htim6
// 步进电机
#define STEPPER_MOTOR_ZERO_SENSOR SENSOR_INT0
#define STEPPER_MOTOR_FORWARD_SENSOR SENSOR_INT8
#define STEPPER_MOTOR_BACKWARD_SENSOR SENSOR_INT9
#define SENSOR_INT0 PD0
#define SENSOR_INT1 PD1
#define SENSOR_INT2 PD2
#define SENSOR_INT3 PD3
#define SENSOR_INT4 PD4
#define SENSOR_INT5 PD5
#define SENSOR_INT6 PD6
#define SENSOR_INT7 PD7
#define SENSOR_INT8 PD8
#define SENSOR_INT9 PD9
---------------------------------------------------
1. 支持位置限制逻辑
2. 支持获取当前坐标逻辑
3. 支持记录当前点作为逻辑点逻辑
4. 支持flash保存参数逻辑

87
a8000_cliptip_module.ioc

@ -89,9 +89,10 @@ Mcu.IP12=TIM2
Mcu.IP13=TIM3
Mcu.IP14=TIM6
Mcu.IP15=TIM7
Mcu.IP16=USART1
Mcu.IP17=USART2
Mcu.IP18=USART3
Mcu.IP16=UART4
Mcu.IP17=USART1
Mcu.IP18=USART2
Mcu.IP19=USART3
Mcu.IP2=CRC
Mcu.IP3=DMA
Mcu.IP4=FREERTOS
@ -100,45 +101,47 @@ Mcu.IP6=NVIC
Mcu.IP7=RCC
Mcu.IP8=RNG
Mcu.IP9=SPI1
Mcu.IPNb=19
Mcu.IPNb=20
Mcu.Name=STM32F407V(E-G)Tx
Mcu.Package=LQFP100
Mcu.Pin0=PH0-OSC_IN
Mcu.Pin1=PH1-OSC_OUT
Mcu.Pin10=PB0
Mcu.Pin11=PB1
Mcu.Pin12=PE9
Mcu.Pin13=PE13
Mcu.Pin14=PB10
Mcu.Pin15=PB11
Mcu.Pin16=PC9
Mcu.Pin17=PA9
Mcu.Pin18=PA10
Mcu.Pin19=PA11
Mcu.Pin10=PC4
Mcu.Pin11=PB0
Mcu.Pin12=PB1
Mcu.Pin13=PE9
Mcu.Pin14=PE13
Mcu.Pin15=PB10
Mcu.Pin16=PB11
Mcu.Pin17=PC9
Mcu.Pin18=PA9
Mcu.Pin19=PA10
Mcu.Pin2=PC0
Mcu.Pin20=PA12
Mcu.Pin21=PA13
Mcu.Pin22=PA14
Mcu.Pin23=PD5
Mcu.Pin24=PD6
Mcu.Pin25=PB6
Mcu.Pin26=PB7
Mcu.Pin27=VP_CRC_VS_CRC
Mcu.Pin28=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin29=VP_RNG_VS_RNG
Mcu.Pin3=PA1
Mcu.Pin30=VP_SYS_VS_tim11
Mcu.Pin31=VP_TIM1_VS_ClockSourceINT
Mcu.Pin32=VP_TIM3_VS_ClockSourceINT
Mcu.Pin33=VP_TIM6_VS_ClockSourceINT
Mcu.Pin34=VP_TIM7_VS_ClockSourceINT
Mcu.Pin4=PA2
Mcu.Pin5=PA3
Mcu.Pin6=PA5
Mcu.Pin7=PA6
Mcu.Pin8=PA7
Mcu.Pin9=PC4
Mcu.PinsNb=35
Mcu.Pin20=PA11
Mcu.Pin21=PA12
Mcu.Pin22=PA13
Mcu.Pin23=PA14
Mcu.Pin24=PC11
Mcu.Pin25=PD5
Mcu.Pin26=PD6
Mcu.Pin27=PB6
Mcu.Pin28=PB7
Mcu.Pin29=VP_CRC_VS_CRC
Mcu.Pin3=PA0-WKUP
Mcu.Pin30=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin31=VP_RNG_VS_RNG
Mcu.Pin32=VP_SYS_VS_tim11
Mcu.Pin33=VP_TIM1_VS_ClockSourceINT
Mcu.Pin34=VP_TIM3_VS_ClockSourceINT
Mcu.Pin35=VP_TIM6_VS_ClockSourceINT
Mcu.Pin36=VP_TIM7_VS_ClockSourceINT
Mcu.Pin4=PA1
Mcu.Pin5=PA2
Mcu.Pin6=PA3
Mcu.Pin7=PA5
Mcu.Pin8=PA6
Mcu.Pin9=PA7
Mcu.PinsNb=37
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F407VETx
@ -170,9 +173,12 @@ 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.UART4_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.USART2_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.USART3_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
PA0-WKUP.Mode=Asynchronous
PA0-WKUP.Signal=UART4_TX
PA1.Locked=true
PA1.Signal=S_TIM2_CH2
PA10.Mode=Asynchronous
@ -214,6 +220,8 @@ PB7.Mode=I2C
PB7.Signal=I2C1_SDA
PC0.Locked=true
PC0.Signal=GPXTI0
PC11.Mode=Asynchronous
PC11.Signal=UART4_RX
PC4.Locked=true
PC4.Signal=GPXTI4
PC9.Locked=true
@ -342,10 +350,13 @@ TIM6.IPParameters=Prescaler
TIM6.Prescaler=71
TIM7.IPParameters=Prescaler
TIM7.Prescaler=81
UART4.IPParameters=VirtualMode
UART4.VirtualMode=Asynchronous
USART1.BaudRate=961200
USART1.IPParameters=VirtualMode,BaudRate
USART1.VirtualMode=VM_ASYNC
USART2.IPParameters=VirtualMode
USART2.BaudRate=9600
USART2.IPParameters=VirtualMode,BaudRate
USART2.VirtualMode=VM_ASYNC
USART3.BaudRate=9600
USART3.IPParameters=VirtualMode,BaudRate

2
a8000_cliptip_module.launch

@ -52,7 +52,7 @@
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.max_halt_delay" value="2"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.reset_strategy" value="system_reset"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_check_serial_number" value="true"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_txt_serial_number" value="001B00273132510838363431"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_txt_serial_number" value="0046002C3132510838363431"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.watchdog_config" value="none"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkenable_rtos" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkrestart_configurations" value="{&quot;fVersion&quot;:1,&quot;fItems&quot;:[{&quot;fDisplayName&quot;:&quot;Reset&quot;,&quot;fIsSuppressible&quot;:false,&quot;fResetAttribute&quot;:&quot;Software system reset&quot;,&quot;fResetStrategies&quot;:[{&quot;fDisplayName&quot;:&quot;Software system reset&quot;,&quot;fLaunchAttribute&quot;:&quot;system_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset\r\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;Hardware reset&quot;,&quot;fLaunchAttribute&quot;:&quot;hardware_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset hardware\r\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;Core reset&quot;,&quot;fLaunchAttribute&quot;:&quot;core_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset core\r\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;None&quot;,&quot;fLaunchAttribute&quot;:&quot;no_reset&quot;,&quot;fGdbCommands&quot;:[],&quot;fCmdOptions&quot;:[&quot;-g&quot;]}],&quot;fGdbCommandGroup&quot;:{&quot;name&quot;:&quot;Additional commands&quot;,&quot;commands&quot;:[]},&quot;fStartApplication&quot;:true}]}"/>

2
sdk

@ -1 +1 @@
Subproject commit fbe10eeb6c72a4419f1e05c745bca2b7518e54e8
Subproject commit 283569575d2fdfa9a9719bbcfba1d874d52aff8f

1
usrc/board.h

@ -9,4 +9,3 @@
#define MOTOR_CFG_FLASH_MARK "MOTOR_CFG_FLASH_MARK"
#define BOARD_ID 2

16
usrc/main.cpp

@ -52,20 +52,20 @@ static void initsubmodule() {
g_motor.setIHOLD_IRUN(0, 8, 10);
static ZGPIO input[10];
input[0].initAsInput(PD1 /*REFL*/, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[1].initAsInput(PD2 /*REFR*/, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[0].initAsInput(PD2 /*REFL*/, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[1].initAsInput(PD1 /*REFR*/, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[2].initAsInput(PD3 /*DIAG0*/, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[3].initAsInput(PD4 /*DIAG1*/, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
I_StepMotorCtrlModule::flash_config_t smcm_cfg = {0};
StepMotorCtrlModule::create_default_cfg(smcm_cfg);
smcm_cfg.base_param.distance_scale = 100;
smcm_cfg.base_param.distance_scale = 80;
smcm_cfg.base_param.distance_scale_denominator = 1;
smcm_cfg.base_param.ihold = 1;
smcm_cfg.base_param.irun = 8;
smcm_cfg.base_param.x_shaft = true;
smcm_cfg.base_param.maxspeed = 300;
smcm_cfg.base_param.run_to_zero_speed = 50;
smcm_cfg.base_param.x_shaft = false;
smcm_cfg.base_param.maxspeed = 500;
smcm_cfg.base_param.run_to_zero_speed = 100;
smcm_cfg.base_param.max_x = 0;
smcm_cfg.base_param.min_x = 0;
@ -76,7 +76,7 @@ static void initsubmodule() {
{
static PipetteModule g_pipetteModule;
PipetteModule::config_t cfg = {
.limit_ul = 100,
.limit_ul = 30,
};
PipetteModule::hardward_config_t hardwarecfg = {
@ -92,7 +92,7 @@ static void initsubmodule() {
//
static M3078CodeScanner codescanner;
static M3078CodeScanner::hardware_config_t cfg = {
.uart = &huart2,
.uart = &huart4,
.hdma_rx = nullptr,
.hdma_tx = nullptr,

Loading…
Cancel
Save