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 #ifdef HAL_CAN_MODULE_ENABLED
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <stdlib.h>
using namespace iflytop; using namespace iflytop;
#define TAG "IflytopCanProtocolStackProcesser" #define TAG "IflytopCanProtocolStackProcesser"
@ -712,4 +713,4 @@ void IflytopCanProtocolStackProcesser::callOnRegisterExtEvent(icps::Reg_t *reg,
value = eve.value; value = eve.value;
} }
#endif #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) { m_uart.initialize(&cfg, [this](uint8_t* data, size_t len) {
if (m_onidinfo) m_onidinfo((char*)data); 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_trigger = false;
m_uart.startRxIt(); m_uart.startRxIt();

24
components/tmc/ic/ztmc4361A.hpp

@ -26,13 +26,13 @@ class TMC4361A : public IStepperMotor {
typedef struct { typedef struct {
SPI_HandleTypeDef *spi; 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; } cfg_t;
private: private:
@ -46,13 +46,13 @@ class TMC4361A : public IStepperMotor {
SPI_HandleTypeDef *m_spi; 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; 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_mirror = mirror;
m_mode = mode; m_mode = mode;
m_irqtype = irqtype; m_irqtype = irqtype;
m_gpiotype = kInput;
m_gpiotype = kType_Input;
m_gpio = chip_get_gpio(pin); m_gpio = chip_get_gpio(pin);
m_pinoff = chip_get_pinoff(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_mirror = mirror;
m_mode = mode; m_mode = mode;
m_irqtype = kIRQ_noIrq; m_irqtype = kIRQ_noIrq;
m_gpiotype = kOutput;
m_gpiotype = kType_Output;
m_gpio = chip_get_gpio(pin); m_gpio = chip_get_gpio(pin);
m_pinoff = chip_get_pinoff(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; initLevel = m_mirror ? !initLevel : initLevel;
GPIO_PinState pinState = initLevel ? GPIO_PIN_SET : GPIO_PIN_RESET; 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.Pin = m_pinoff;
m_GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; m_GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
m_GPIO_InitStruct.Pull = GPIO_NOPULL; m_GPIO_InitStruct.Pull = GPIO_NOPULL;
m_GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 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.Pin = m_pinoff;
m_GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; m_GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
m_GPIO_InitStruct.Pull = GPIO_PULLUP; m_GPIO_InitStruct.Pull = GPIO_PULLUP;
m_GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 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.Pin = m_pinoff;
m_GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; m_GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
m_GPIO_InitStruct.Pull = GPIO_PULLDOWN; m_GPIO_InitStruct.Pull = GPIO_PULLDOWN;
m_GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 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.Pin = m_pinoff;
m_GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; m_GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
m_GPIO_InitStruct.Pull = 0; m_GPIO_InitStruct.Pull = 0;

15
hal/gpio.hpp

@ -16,18 +16,13 @@ class ZGPIO {
} IrqTypeEvent_t; } IrqTypeEvent_t;
typedef enum { 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; } GPIOMode_t;
typedef enum { kAIN, kInput, kOutput } GPIOType_t;
typedef enum { kType_AIN, kType_Input, kType_Output } GPIOType_t;
typedef enum { typedef enum {
kIRQ_noIrq, kIRQ_noIrq,

19
hal/zuart.cpp

@ -5,6 +5,7 @@
#include "critical_context.hpp" #include "critical_context.hpp"
#include "zhal_core.hpp" #include "zhal_core.hpp"
#include "malloc.h"
using namespace iflytop; using namespace iflytop;
static ZUART *s_uart_table[10]; static ZUART *s_uart_table[10];
@ -138,12 +139,12 @@ bool ZUART::startRxIt() {
} }
bool ZUART::dataIsReady() { bool ZUART::dataIsReady() {
CriticalContext criticalContext();
CriticalContext criticalContext;
if (m_dataIsReady) { if (m_dataIsReady) {
return true; return true;
} }
if (!m_dataIsReady && m_rxBufferPos != 0) { 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; m_dataIsReady = true;
return true; return true;
} }
@ -151,7 +152,7 @@ bool ZUART::dataIsReady() {
return false; return false;
} }
void ZUART::clearRxData() { void ZUART::clearRxData() {
ZCriticalContext criticalContext();
ZCriticalContext criticalContext;
m_dataIsReady = false; m_dataIsReady = false;
memset(m_rxBuffer, 0, m_rxBufferLen); memset(m_rxBuffer, 0, m_rxBufferLen);
m_rxBufferPos = 0; 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