Browse Source

update

master
zhaohe 2 years ago
parent
commit
aabe7a52c3
  1. 3
      components/iflytop_can_slave_v1/iflytop_can_slave.cpp
  2. 2
      components/m3078/m3078_code_scaner.cpp
  3. 24
      components/tmc/ic/ztmc4361A.hpp
  4. 16
      hal/gpio.cpp
  5. 15
      hal/gpio.hpp
  6. 19
      hal/zuart.cpp

3
components/iflytop_can_slave_v1/iflytop_can_slave.cpp

@ -3,6 +3,7 @@
#ifdef HAL_CAN_MODULE_ENABLED
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace iflytop;
#define TAG "IflytopCanProtocolStackProcesser"
@ -712,4 +713,4 @@ void IflytopCanProtocolStackProcesser::callOnRegisterExtEvent(icps::Reg_t *reg,
value = eve.value;
}
#endif
#endif
#endif

2
components/m3078/m3078_code_scaner.cpp

@ -12,7 +12,7 @@ void M3078CodeScanner::initialize(UART_HandleTypeDef* huart, Pin_t triggerPin) {
m_uart.initialize(&cfg, [this](uint8_t* data, size_t len) {
if (m_onidinfo) m_onidinfo((char*)data);
});
m_triggerGpio.initAsOutput(triggerPin, ZGPIO::kOutput_nopull, false, false);
m_triggerGpio.initAsOutput(triggerPin, ZGPIO::kMode_nopull, false, false);
m_trigger = false;
m_uart.startRxIt();

24
components/tmc/ic/ztmc4361A.hpp

@ -26,13 +26,13 @@ class TMC4361A : public IStepperMotor {
typedef struct {
SPI_HandleTypeDef *spi;
STM32_GPIO *csgpio;
STM32_GPIO *resetPin;
STM32_GPIO *fREEZEPin;
STM32_GPIO *ennPin;
ZGPIO *csgpio;
ZGPIO *resetPin;
ZGPIO *fREEZEPin;
ZGPIO *ennPin;
STM32_GPIO *driverIC_ennPin;
STM32_GPIO *driverIC_resetPin;
ZGPIO *driverIC_ennPin;
ZGPIO *driverIC_resetPin;
} cfg_t;
private:
@ -46,13 +46,13 @@ class TMC4361A : public IStepperMotor {
SPI_HandleTypeDef *m_spi;
STM32_GPIO *m_csgpio;
STM32_GPIO *m_resetPin;
STM32_GPIO *m_fREEZEPin;
STM32_GPIO *m_ennPin;
ZGPIO *m_csgpio;
ZGPIO *m_resetPin;
ZGPIO *m_fREEZEPin;
ZGPIO *m_ennPin;
STM32_GPIO *m_driverIC_ennPin;
STM32_GPIO *m_driverIC_resetPin;
ZGPIO *m_driverIC_ennPin;
ZGPIO *m_driverIC_resetPin;
bool m_reachtarget;

16
hal/gpio.cpp

@ -136,7 +136,7 @@ void ZGPIO::initAsInput(Pin_t pin, GPIOMode_t mode, GPIOIrqType_t irqtype, bool
m_mirror = mirror;
m_mode = mode;
m_irqtype = irqtype;
m_gpiotype = kInput;
m_gpiotype = kType_Input;
m_gpio = chip_get_gpio(pin);
m_pinoff = chip_get_pinoff(pin);
@ -178,7 +178,7 @@ void ZGPIO::initAsOutput(Pin_t pin, GPIOMode_t mode, bool mirror, bool initLevel
m_mirror = mirror;
m_mode = mode;
m_irqtype = kIRQ_noIrq;
m_gpiotype = kOutput;
m_gpiotype = kType_Output;
m_gpio = chip_get_gpio(pin);
m_pinoff = chip_get_pinoff(pin);
@ -189,25 +189,23 @@ void ZGPIO::initAsOutput(Pin_t pin, GPIOMode_t mode, bool mirror, bool initLevel
initLevel = m_mirror ? !initLevel : initLevel;
GPIO_PinState pinState = initLevel ? GPIO_PIN_SET : GPIO_PIN_RESET;
if (m_mode == kOutput_nopull || m_mode == kOutput_pullup || m_mode == kOutput_pulldown || m_mode == kOutput_od) {
HAL_GPIO_WritePin(m_gpio, m_pinoff, pinState);
}
if (m_mode == kOutput_nopull) {
HAL_GPIO_WritePin(m_gpio, m_pinoff, pinState);
if (m_mode == kMode_nopull) {
m_GPIO_InitStruct.Pin = m_pinoff;
m_GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
m_GPIO_InitStruct.Pull = GPIO_NOPULL;
m_GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
} else if (m_mode == kOutput_pullup) {
} else if (m_mode == kMode_pullup) {
m_GPIO_InitStruct.Pin = m_pinoff;
m_GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
m_GPIO_InitStruct.Pull = GPIO_PULLUP;
m_GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
} else if (m_mode == kOutput_pulldown) {
} else if (m_mode == kMode_pulldown) {
m_GPIO_InitStruct.Pin = m_pinoff;
m_GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
m_GPIO_InitStruct.Pull = GPIO_PULLDOWN;
m_GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
} else if (m_mode == kOutput_od) {
} else if (m_mode == kMode_od) {
m_GPIO_InitStruct.Pin = m_pinoff;
m_GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
m_GPIO_InitStruct.Pull = 0;

15
hal/gpio.hpp

@ -16,18 +16,13 @@ class ZGPIO {
} IrqTypeEvent_t;
typedef enum {
kAIN,
kInput_nopull, //
kInput_pullup, //
kInput_pulldown, //
kInput_od, //
kOutput_nopull, //
kOutput_pullup, //
kOutput_pulldown, //
kOutput_od, //
kMode_nopull, //
kMode_pullup, //
kMode_pulldown, //
kMode_od, //
} GPIOMode_t;
typedef enum { kAIN, kInput, kOutput } GPIOType_t;
typedef enum { kType_AIN, kType_Input, kType_Output } GPIOType_t;
typedef enum {
kIRQ_noIrq,

19
hal/zuart.cpp

@ -5,6 +5,7 @@
#include "critical_context.hpp"
#include "zhal_core.hpp"
#include "malloc.h"
using namespace iflytop;
static ZUART *s_uart_table[10];
@ -138,12 +139,12 @@ bool ZUART::startRxIt() {
}
bool ZUART::dataIsReady() {
CriticalContext criticalContext();
CriticalContext criticalContext;
if (m_dataIsReady) {
return true;
}
if (!m_dataIsReady && m_rxBufferPos != 0) {
if (ifly_has_passedms(m_lastRxTime) > m_rxovertime_ms) {
if (ifly_has_passedms(m_lastRxTime) > (uint32_t)m_rxovertime_ms) {
m_dataIsReady = true;
return true;
}
@ -151,7 +152,7 @@ bool ZUART::dataIsReady() {
return false;
}
void ZUART::clearRxData() {
ZCriticalContext criticalContext();
ZCriticalContext criticalContext;
m_dataIsReady = false;
memset(m_rxBuffer, 0, m_rxBufferLen);
m_rxBufferPos = 0;
@ -165,18 +166,6 @@ void ZUART::periodicJob() {
}
}
bool ZUART::startRxIt() {
ZASSERT(m_rxBuffer != NULL);
ZASSERT(NVIC_GetEnableIRQ(getUartIRQType()) != 0);
if (m_isRxing) return true;
m_isRxing = true;
HAL_UART_Receive_IT(m_huart, &onebyte, 1);
return true;
}
/*******************************************************************************
* *
*******************************************************************************/

Loading…
Cancel
Save