diff --git a/chip/basic/basic_h/pin.hpp b/chip/basic/basic_h/pin.hpp index 7f88567..c682333 100644 --- a/chip/basic/basic_h/pin.hpp +++ b/chip/basic/basic_h/pin.hpp @@ -117,5 +117,5 @@ typedef enum { } Pin_t; namespace iflytop { - const char* pinname(Pin_t pin); +const char* pinname(Pin_t pin); } \ No newline at end of file diff --git a/chip/basic/chip_helper.cpp b/chip/basic/chip_helper.cpp index 9a975dc..a26ff5d 100644 --- a/chip/basic/chip_helper.cpp +++ b/chip/basic/chip_helper.cpp @@ -21,38 +21,38 @@ GPIO_TypeDef* chip_get_gpio(Pin_t pin) { int port = pin >> 4; switch (port) { - case 1: + case (PA0 >> 4): #ifdef GPIOA return GPIOA; #endif break; - case 2: + case (PB0 >> 4): #ifdef GPIOB return GPIOB; #endif break; - case 3: + case (PC0 >> 4): #ifdef GPIOC return GPIOC; #endif break; - case 4: + case (PD0 >> 4): #ifdef GPIOD return GPIOD; #endif break; - case 5: + case (PE0 >> 4): #ifdef GPIOE return GPIOE; #endif break; - case 6: + case (PF0 >> 4): #ifdef GPIOF return GPIOF; #endif break; - case 7: + case (PG0 >> 4): #ifdef GPIOG return GPIOG; #endif @@ -408,8 +408,8 @@ bool chip_calculate_prescaler_and_autoreload_by_expect_freq(uint32_t timerInClk, int psc_x_arr_real = arr * psc; float realfreq = timerInClk / psc_x_arr_real; - arr = arr - 1; - psc = psc - 1; + arr = arr - 1; + psc = psc - 1; // uint16_t comparevalue = 50 / 100.0 * arr; *prescaler = psc; diff --git a/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp b/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp index 6b57c71..196a4f9 100644 --- a/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp +++ b/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp @@ -214,6 +214,7 @@ int32_t StepMotorCtrlModule::step_motor_read_io_index_in_stm32(int32_t ioindex, if (ioindex < 0 || ioindex >= m_nio) { return err::kstep_motor_ioindex_out_of_range; } + *index_in_stm32 = m_iotable[ioindex].getPin(); return 0; } diff --git a/components/zcancmder/zcan_protocol_parser.cpp b/components/zcancmder/zcan_protocol_parser.cpp index ba5666d..c2dfadd 100644 --- a/components/zcancmder/zcan_protocol_parser.cpp +++ b/components/zcancmder/zcan_protocol_parser.cpp @@ -42,6 +42,7 @@ void ZCanProtocolParser::initialize(IZCanReceiver* cancmder) { REGFN(step_motor_read_tmc4361a_state); REGFN(step_motor_read_tmc2160_status); REGFN(step_motor_read_tmc2160_state); + REGFN(step_motor_read_io_index_in_stm32); REGFN(mini_servo_enable); REGFN(mini_servo_read_pos); @@ -57,6 +58,8 @@ void ZCanProtocolParser::initialize(IZCanReceiver* cancmder) { REGFN(board_read_ext_io); REGFN(board_write_ext_io); REGFN(board_read_muti_io); + REGFN(board_read_inio_index_in_stm32); + REGFN(board_read_outio_index_in_stm32); REGFN(code_scaner_start_scan); REGFN(code_scaner_stop_scan); @@ -311,6 +314,12 @@ int32_t ZCanProtocolParser::step_motor_read_tmc2160_state(cmdcontxt_t* cxt) { cxt->acklen = 4; return module->step_motor_read_tmc2160_state(&ack[0]); } +int32_t ZCanProtocolParser::step_motor_read_io_index_in_stm32(cmdcontxt_t* cxt) { + CHECK_AND_GET_MODULE(1); + int32_t* ack = (int32_t*)cxt->ackbuf; + cxt->acklen = 4; + return module->step_motor_read_io_index_in_stm32(cxt->params[0], ack); +} #undef MODULE_CLASS #define MODULE_CLASS ZIMiniServo @@ -390,6 +399,19 @@ int32_t ZCanProtocolParser::board_read_muti_io(cmdcontxt_t* cxt) { return module->board_read_muti_io(ack); } +int32_t ZCanProtocolParser::board_read_inio_index_in_stm32(cmdcontxt_t* cxt) { + CHECK_AND_GET_MODULE(1); + int32_t* ack = (int32_t*)cxt->ackbuf; + cxt->acklen = 4; + return module->board_read_inio_index_in_stm32(cxt->params[0], ack); +} +int32_t ZCanProtocolParser::board_read_outio_index_in_stm32(cmdcontxt_t* cxt) { + CHECK_AND_GET_MODULE(1); + int32_t* ack = (int32_t*)cxt->ackbuf; + cxt->acklen = 4; + return module->board_read_outio_index_in_stm32(cxt->params[0], ack); +} + #undef MODULE_CLASS /*********************************************************************************************************************** diff --git a/components/zcancmder/zcan_protocol_parser.hpp b/components/zcancmder/zcan_protocol_parser.hpp index c9c8bba..a5f4a4b 100644 --- a/components/zcancmder/zcan_protocol_parser.hpp +++ b/components/zcancmder/zcan_protocol_parser.hpp @@ -75,6 +75,7 @@ class ZCanProtocolParser : public IZCanReceiverListener { static int32_t step_motor_read_tmc4361a_state(cmdcontxt_t* cxt); static int32_t step_motor_read_tmc2160_status(cmdcontxt_t* cxt); static int32_t step_motor_read_tmc2160_state(cmdcontxt_t* cxt); + static int32_t step_motor_read_io_index_in_stm32(cmdcontxt_t* cxt); static int32_t mini_servo_enable(cmdcontxt_t* cxt); static int32_t mini_servo_read_pos(cmdcontxt_t* cxt); @@ -90,6 +91,8 @@ class ZCanProtocolParser : public IZCanReceiverListener { static int32_t board_read_ext_io(cmdcontxt_t* cxt); static int32_t board_write_ext_io(cmdcontxt_t* cxt); static int32_t board_read_muti_io(cmdcontxt_t* cxt); + static int32_t board_read_inio_index_in_stm32(cmdcontxt_t* cxt); + static int32_t board_read_outio_index_in_stm32(cmdcontxt_t* cxt); static int32_t code_scaner_start_scan(cmdcontxt_t* cxt); static int32_t code_scaner_stop_scan(cmdcontxt_t* cxt);