Compare commits
2 Commits
e82a79f1c3
...
a76a286859
Author | SHA1 | Date | |
---|---|---|---|
|
a76a286859 | ||
|
e1c3c733f0 |
13
CAR.ioc
13
CAR.ioc
|
@ -3,7 +3,8 @@ CAD.formats=
|
||||||
CAD.pinconfig=
|
CAD.pinconfig=
|
||||||
CAD.provider=
|
CAD.provider=
|
||||||
Dma.Request0=USART2_RX
|
Dma.Request0=USART2_RX
|
||||||
Dma.RequestsNb=1
|
Dma.Request1=USART2_TX
|
||||||
|
Dma.RequestsNb=2
|
||||||
Dma.USART2_RX.0.Direction=DMA_PERIPH_TO_MEMORY
|
Dma.USART2_RX.0.Direction=DMA_PERIPH_TO_MEMORY
|
||||||
Dma.USART2_RX.0.Instance=DMA1_Channel6
|
Dma.USART2_RX.0.Instance=DMA1_Channel6
|
||||||
Dma.USART2_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
|
Dma.USART2_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
|
||||||
|
@ -13,6 +14,15 @@ Dma.USART2_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
|
||||||
Dma.USART2_RX.0.PeriphInc=DMA_PINC_DISABLE
|
Dma.USART2_RX.0.PeriphInc=DMA_PINC_DISABLE
|
||||||
Dma.USART2_RX.0.Priority=DMA_PRIORITY_HIGH
|
Dma.USART2_RX.0.Priority=DMA_PRIORITY_HIGH
|
||||||
Dma.USART2_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
|
Dma.USART2_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
|
||||||
|
Dma.USART2_TX.1.Direction=DMA_MEMORY_TO_PERIPH
|
||||||
|
Dma.USART2_TX.1.Instance=DMA1_Channel7
|
||||||
|
Dma.USART2_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
|
||||||
|
Dma.USART2_TX.1.MemInc=DMA_MINC_ENABLE
|
||||||
|
Dma.USART2_TX.1.Mode=DMA_NORMAL
|
||||||
|
Dma.USART2_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
|
||||||
|
Dma.USART2_TX.1.PeriphInc=DMA_PINC_DISABLE
|
||||||
|
Dma.USART2_TX.1.Priority=DMA_PRIORITY_MEDIUM
|
||||||
|
Dma.USART2_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
|
||||||
File.Version=6
|
File.Version=6
|
||||||
GPIO.groupedBy=Group By Peripherals
|
GPIO.groupedBy=Group By Peripherals
|
||||||
KeepUserPlacement=false
|
KeepUserPlacement=false
|
||||||
|
@ -72,6 +82,7 @@ MxCube.Version=6.12.0
|
||||||
MxDb.Version=DB.6.0.120
|
MxDb.Version=DB.6.0.120
|
||||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||||
NVIC.DMA1_Channel6_IRQn=true\:3\:0\:true\:false\:true\:true\:true\:true
|
NVIC.DMA1_Channel6_IRQn=true\:3\:0\:true\:false\:true\:true\:true\:true
|
||||||
|
NVIC.DMA1_Channel7_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
||||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||||
NVIC.EXTI15_10_IRQn=true\:2\:0\:true\:false\:true\:true\:true\:true
|
NVIC.EXTI15_10_IRQn=true\:2\:0\:true\:false\:true\:true\:true\:true
|
||||||
NVIC.ForceEnableDMAVector=false
|
NVIC.ForceEnableDMAVector=false
|
||||||
|
|
|
@ -56,6 +56,7 @@ void DebugMon_Handler(void);
|
||||||
void PendSV_Handler(void);
|
void PendSV_Handler(void);
|
||||||
void SysTick_Handler(void);
|
void SysTick_Handler(void);
|
||||||
void DMA1_Channel6_IRQHandler(void);
|
void DMA1_Channel6_IRQHandler(void);
|
||||||
|
void DMA1_Channel7_IRQHandler(void);
|
||||||
void TIM2_IRQHandler(void);
|
void TIM2_IRQHandler(void);
|
||||||
void TIM4_IRQHandler(void);
|
void TIM4_IRQHandler(void);
|
||||||
void USART1_IRQHandler(void);
|
void USART1_IRQHandler(void);
|
||||||
|
|
|
@ -46,6 +46,9 @@ void MX_DMA_Init(void)
|
||||||
/* DMA1_Channel6_IRQn interrupt configuration */
|
/* DMA1_Channel6_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA1_Channel6_IRQn, 3, 0);
|
HAL_NVIC_SetPriority(DMA1_Channel6_IRQn, 3, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn);
|
HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn);
|
||||||
|
/* DMA1_Channel7_IRQn interrupt configuration */
|
||||||
|
HAL_NVIC_SetPriority(DMA1_Channel7_IRQn, 0, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(DMA1_Channel7_IRQn);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,7 @@
|
||||||
extern TIM_HandleTypeDef htim2;
|
extern TIM_HandleTypeDef htim2;
|
||||||
extern TIM_HandleTypeDef htim4;
|
extern TIM_HandleTypeDef htim4;
|
||||||
extern DMA_HandleTypeDef hdma_usart2_rx;
|
extern DMA_HandleTypeDef hdma_usart2_rx;
|
||||||
|
extern DMA_HandleTypeDef hdma_usart2_tx;
|
||||||
extern UART_HandleTypeDef huart1;
|
extern UART_HandleTypeDef huart1;
|
||||||
extern UART_HandleTypeDef huart2;
|
extern UART_HandleTypeDef huart2;
|
||||||
/* USER CODE BEGIN EV */
|
/* USER CODE BEGIN EV */
|
||||||
|
@ -216,6 +217,20 @@ void DMA1_Channel6_IRQHandler(void)
|
||||||
/* USER CODE END DMA1_Channel6_IRQn 1 */
|
/* USER CODE END DMA1_Channel6_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles DMA1 channel7 global interrupt.
|
||||||
|
*/
|
||||||
|
void DMA1_Channel7_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN DMA1_Channel7_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA1_Channel7_IRQn 0 */
|
||||||
|
HAL_DMA_IRQHandler(&hdma_usart2_tx);
|
||||||
|
/* USER CODE BEGIN DMA1_Channel7_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA1_Channel7_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles TIM2 global interrupt.
|
* @brief This function handles TIM2 global interrupt.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
UART_HandleTypeDef huart1;
|
UART_HandleTypeDef huart1;
|
||||||
UART_HandleTypeDef huart2;
|
UART_HandleTypeDef huart2;
|
||||||
DMA_HandleTypeDef hdma_usart2_rx;
|
DMA_HandleTypeDef hdma_usart2_rx;
|
||||||
|
DMA_HandleTypeDef hdma_usart2_tx;
|
||||||
|
|
||||||
/* USART1 init function */
|
/* USART1 init function */
|
||||||
|
|
||||||
|
@ -161,6 +162,22 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
||||||
|
|
||||||
__HAL_LINKDMA(uartHandle,hdmarx,hdma_usart2_rx);
|
__HAL_LINKDMA(uartHandle,hdmarx,hdma_usart2_rx);
|
||||||
|
|
||||||
|
/* USART2_TX Init */
|
||||||
|
hdma_usart2_tx.Instance = DMA1_Channel7;
|
||||||
|
hdma_usart2_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
|
||||||
|
hdma_usart2_tx.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||||
|
hdma_usart2_tx.Init.MemInc = DMA_MINC_ENABLE;
|
||||||
|
hdma_usart2_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
||||||
|
hdma_usart2_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
||||||
|
hdma_usart2_tx.Init.Mode = DMA_NORMAL;
|
||||||
|
hdma_usart2_tx.Init.Priority = DMA_PRIORITY_MEDIUM;
|
||||||
|
if (HAL_DMA_Init(&hdma_usart2_tx) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
__HAL_LINKDMA(uartHandle,hdmatx,hdma_usart2_tx);
|
||||||
|
|
||||||
/* USART2 interrupt Init */
|
/* USART2 interrupt Init */
|
||||||
HAL_NVIC_SetPriority(USART2_IRQn, 3, 0);
|
HAL_NVIC_SetPriority(USART2_IRQn, 3, 0);
|
||||||
HAL_NVIC_EnableIRQ(USART2_IRQn);
|
HAL_NVIC_EnableIRQ(USART2_IRQn);
|
||||||
|
@ -209,6 +226,7 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
||||||
|
|
||||||
/* USART2 DMA DeInit */
|
/* USART2 DMA DeInit */
|
||||||
HAL_DMA_DeInit(uartHandle->hdmarx);
|
HAL_DMA_DeInit(uartHandle->hdmarx);
|
||||||
|
HAL_DMA_DeInit(uartHandle->hdmatx);
|
||||||
|
|
||||||
/* USART2 interrupt Deinit */
|
/* USART2 interrupt Deinit */
|
||||||
HAL_NVIC_DisableIRQ(USART2_IRQn);
|
HAL_NVIC_DisableIRQ(USART2_IRQn);
|
||||||
|
|
|
@ -4,5 +4,6 @@
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
void BLUETOOTH_Init(void);
|
void BLUETOOTH_Init(void);
|
||||||
|
void BLUETOOTH_Send(const char *str, ...);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
extern uint8_t mode;
|
extern uint8_t mode;
|
||||||
|
|
||||||
void CONTROL_CommonCmd(uint8_t type, uint8_t state);
|
void CONTROL_CommonCmd(uint8_t type, uint8_t state);
|
||||||
|
void CONTROL_Servo(uint8_t degree);
|
||||||
void CONTROL_RGB(uint8_t r, uint8_t g, uint8_t b);
|
void CONTROL_RGB(uint8_t r, uint8_t g, uint8_t b);
|
||||||
void CONTROL_Mode(uint8_t new_mode, uint8_t state);
|
void CONTROL_Mode(uint8_t new_mode, uint8_t state);
|
||||||
|
|
||||||
|
|
|
@ -1,33 +1,50 @@
|
||||||
#include "bluetooth.h"
|
#include "bluetooth.h"
|
||||||
#include "usart.h"
|
#include "usart.h"
|
||||||
#include "control.h"
|
#include "control.h"
|
||||||
|
#include "line_seek.h"
|
||||||
|
#include "infrared.h"
|
||||||
|
#include "hcsr04.h"
|
||||||
|
#include "timer.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "syscalls.h"
|
#include <stdarg.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
#define BUFFER_SIZE 100
|
#define BUFFER_SIZE 255
|
||||||
#define MESSAGE_SIZE 19
|
#define MESSAGE_SIZE 19
|
||||||
#define CMD_NUM 9
|
#define CMD_NUM 9
|
||||||
|
|
||||||
static int8_t rxBuffer[BUFFER_SIZE], txBuffer[10000];
|
static int8_t rxBuffer[BUFFER_SIZE], txBuffer[BUFFER_SIZE];
|
||||||
static uint16_t txLen;
|
static uint16_t txLen;
|
||||||
static uint8_t cmdIndex;
|
static uint8_t cmdIndex;
|
||||||
|
|
||||||
|
void sendSensor(void)
|
||||||
|
{
|
||||||
|
static uint8_t line_seek[5];
|
||||||
|
strcpy(line_seek, LineSeek_GetStatusStr());
|
||||||
|
for (uint8_t i = 0; i < 5; ++i)
|
||||||
|
line_seek[i] ^= 1;
|
||||||
|
BLUETOOTH_Send("$4WD,CSB%u,PV-,GS-,LF%s,HW%hhu%hhu,GM-#",
|
||||||
|
(uint32_t)round((double)sonor_distance / 10),
|
||||||
|
line_seek,
|
||||||
|
!INFRARED_GetL(),
|
||||||
|
!INFRARED_GetR());
|
||||||
|
}
|
||||||
|
|
||||||
void BLUETOOTH_Init(void)
|
void BLUETOOTH_Init(void)
|
||||||
{
|
{
|
||||||
HAL_UARTEx_ReceiveToIdle_IT(&huart2, rxBuffer, 100);
|
HAL_UARTEx_ReceiveToIdle_IT(&huart2, rxBuffer, 100);
|
||||||
// HAL_UART_Receive_IT(&huart2, txBuffer + txLen, 1);
|
TIMER_AddLoopEvent(EVENT_BLUETOOTH, sendSensor, 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
// void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
|
void BLUETOOTH_Send(const char *str, ...)
|
||||||
// {
|
{
|
||||||
// if (huart == &huart2)
|
va_list args;
|
||||||
// {
|
va_start(args, str);
|
||||||
// ++txLen;
|
vsprintf(txBuffer, str, args);
|
||||||
// if (txLen == 10000)
|
va_end(args);
|
||||||
// txLen = 0;
|
HAL_UART_Transmit_DMA(&huart2, txBuffer, strlen(txBuffer));
|
||||||
// }
|
}
|
||||||
// }
|
|
||||||
|
|
||||||
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
||||||
{
|
{
|
||||||
|
@ -65,6 +82,8 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
||||||
break;
|
break;
|
||||||
// 舵机云台
|
// 舵机云台
|
||||||
case 'P':
|
case 'P':
|
||||||
|
sscanf(rxBuffer + 5, "%*3s%hu", num);
|
||||||
|
CONTROL_Servo(180 - num[0]);
|
||||||
break;
|
break;
|
||||||
// 七彩灯
|
// 七彩灯
|
||||||
case 'C':
|
case 'C':
|
||||||
|
@ -73,15 +92,6 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// my_printf(&huart2, rxBuffer);
|
|
||||||
// strcpy(txBuffer + txLen, rxBuffer);
|
|
||||||
// if (txLen + Size >= 9999)
|
|
||||||
// txLen = 0;
|
|
||||||
// else
|
|
||||||
// txLen += Size;
|
|
||||||
// txBuffer[txLen] = '\0';
|
|
||||||
// if (strcmp(rxBuffer, "$send#") == 0)
|
|
||||||
// my_printf(&huart2, txBuffer);
|
|
||||||
BLUETOOTH_Init();
|
BLUETOOTH_Init();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,10 +11,16 @@ inline void BUZZER_Start()
|
||||||
inline void BUZZER_Stop()
|
inline void BUZZER_Stop()
|
||||||
{
|
{
|
||||||
HAL_GPIO_WritePin(FM_K2_POWERC_GPIO_Port, FM_K2_POWERC_Pin, GPIO_PIN_SET);
|
HAL_GPIO_WritePin(FM_K2_POWERC_GPIO_Port, FM_K2_POWERC_Pin, GPIO_PIN_SET);
|
||||||
|
if (state == 1)
|
||||||
|
{
|
||||||
|
state = 0;
|
||||||
|
TIMER_DelLoopEvent(EVENT_BUZZER);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BUZZER_StartTimed(uint8_t time)
|
void BUZZER_StartTimed(uint8_t time)
|
||||||
{
|
{
|
||||||
|
state = 1;
|
||||||
BUZZER_Start();
|
BUZZER_Start();
|
||||||
TIMER_AddLoopEvent(EVENT_BUZZER, BUZZER_Stop, time * 100);
|
TIMER_AddLoopEvent(EVENT_BUZZER, BUZZER_Stop, time * 100);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,16 +2,18 @@
|
||||||
#include "hcsr04.h"
|
#include "hcsr04.h"
|
||||||
#include "led.h"
|
#include "led.h"
|
||||||
#include "motor.h"
|
#include "motor.h"
|
||||||
|
#include "buzzer.h"
|
||||||
|
#include "servo.h"
|
||||||
|
|
||||||
#define CMD_MOVE 0
|
#define CMD_MOVE 0
|
||||||
#define CMD_ROTATE 1
|
#define CMD_ROTATE 1
|
||||||
#define CMD_BUZZER 2
|
#define CMD_BUZZER 2
|
||||||
#define CMD_SPEED 3
|
#define CMD_SPEED 3
|
||||||
// #define CMD_SHAKE 4
|
#define CMD_SERVO 4
|
||||||
// #define CMD_SING 5
|
// #define CMD_SING 5
|
||||||
#define CMD_LED 6
|
#define CMD_LED 6
|
||||||
// #define CMD_FIRE 7
|
// #define CMD_FIRE 7
|
||||||
// #define CMD_SERVO 8
|
#define CMD_SERVO_RESET 8
|
||||||
|
|
||||||
// 小车默认速度
|
// 小车默认速度
|
||||||
static int8_t speed = 20;
|
static int8_t speed = 20;
|
||||||
|
@ -21,11 +23,10 @@ void carMove(uint8_t state);
|
||||||
void carSpin(uint8_t state);
|
void carSpin(uint8_t state);
|
||||||
void callBuzzer(uint8_t state);
|
void callBuzzer(uint8_t state);
|
||||||
void setSpeed(uint8_t state);
|
void setSpeed(uint8_t state);
|
||||||
// void shake(uint8_t state);
|
void setServo(uint8_t state);
|
||||||
// void sing(uint8_t state);
|
// void sing(uint8_t state);
|
||||||
void setLed(uint8_t state);
|
void setLed(uint8_t state);
|
||||||
// void fire(uint8_t state);
|
// void fire(uint8_t state);
|
||||||
// void servo(uint8_t state);
|
|
||||||
|
|
||||||
void CONTROL_CommonCmd(uint8_t type, uint8_t state)
|
void CONTROL_CommonCmd(uint8_t type, uint8_t state)
|
||||||
{
|
{
|
||||||
|
@ -43,8 +44,9 @@ void CONTROL_CommonCmd(uint8_t type, uint8_t state)
|
||||||
case CMD_SPEED:
|
case CMD_SPEED:
|
||||||
setSpeed(state);
|
setSpeed(state);
|
||||||
break;
|
break;
|
||||||
// case CMD_SHAKE:
|
case CMD_SERVO:
|
||||||
// break;
|
setServo(state);
|
||||||
|
break;
|
||||||
// case CMD_SING:
|
// case CMD_SING:
|
||||||
// break;
|
// break;
|
||||||
case CMD_LED:
|
case CMD_LED:
|
||||||
|
@ -52,12 +54,18 @@ void CONTROL_CommonCmd(uint8_t type, uint8_t state)
|
||||||
break;
|
break;
|
||||||
// case CMD_FIRE:
|
// case CMD_FIRE:
|
||||||
// break;
|
// break;
|
||||||
// case CMD_SERVO:
|
case CMD_SERVO_RESET:
|
||||||
// break;
|
SERVO_Init();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CONTROL_RGB(uint8_t r, uint8_t g, uint8_t b)
|
inline void CONTROL_Servo(uint8_t degree)
|
||||||
|
{
|
||||||
|
SERVO_Rotate(degree);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void CONTROL_RGB(uint8_t r, uint8_t g, uint8_t b)
|
||||||
{
|
{
|
||||||
LED_Start(LED_ALL);
|
LED_Start(LED_ALL);
|
||||||
LED_SetDuty(r, g, b);
|
LED_SetDuty(r, g, b);
|
||||||
|
@ -121,7 +129,7 @@ void carMove(uint8_t state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void carSpin(uint8_t state)
|
inline void carSpin(uint8_t state)
|
||||||
{
|
{
|
||||||
if (state == 1)
|
if (state == 1)
|
||||||
MOTOR_SetDuty(speed, -speed);
|
MOTOR_SetDuty(speed, -speed);
|
||||||
|
@ -129,11 +137,9 @@ void carSpin(uint8_t state)
|
||||||
MOTOR_SetDuty(-speed, speed);
|
MOTOR_SetDuty(-speed, speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
void callBuzzer(uint8_t state)
|
inline void callBuzzer(uint8_t state)
|
||||||
{
|
{
|
||||||
HAL_GPIO_WritePin(FM_K2_POWERC_GPIO_Port, FM_K2_POWERC_Pin, GPIO_PIN_RESET);
|
BUZZER_StartTimed(5);
|
||||||
HAL_Delay(200);
|
|
||||||
HAL_GPIO_WritePin(FM_K2_POWERC_GPIO_Port, FM_K2_POWERC_Pin, GPIO_PIN_SET);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setSpeed(uint8_t state)
|
void setSpeed(uint8_t state)
|
||||||
|
@ -148,6 +154,14 @@ void setSpeed(uint8_t state)
|
||||||
speed = 20;
|
speed = 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setServo(uint8_t state)
|
||||||
|
{
|
||||||
|
if (state == 1)
|
||||||
|
SERVO_Rotate(180);
|
||||||
|
else if (state == 2)
|
||||||
|
SERVO_Rotate(0);
|
||||||
|
}
|
||||||
|
|
||||||
void setLed(uint8_t state)
|
void setLed(uint8_t state)
|
||||||
{
|
{
|
||||||
LED_Start(LED_ALL);
|
LED_Start(LED_ALL);
|
||||||
|
|
|
@ -66,6 +66,6 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
||||||
// 测距完毕回调,执行完自定义任务后将sonor_state置0
|
// 测距完毕回调,执行完自定义任务后将sonor_state置0
|
||||||
__attribute__((weak)) void Sonar_CP_Callback()
|
__attribute__((weak)) void Sonar_CP_Callback()
|
||||||
{
|
{
|
||||||
my_printf(HUART2, "distance = %d (mm)\n", sonor_distance);
|
my_printf(HUART1, "distance = %d (mm)\n", sonor_distance);
|
||||||
sonor_state = 0;
|
sonor_state = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
#define EVENT_LED 0
|
#define EVENT_LED 0
|
||||||
#define EVENT_BUZZER 1
|
#define EVENT_BUZZER 1
|
||||||
#define EVENT_HCSR04 2
|
#define EVENT_BLUETOOTH 2
|
||||||
#define EVENT_SERVO 3
|
#define EVENT_SERVO 3
|
||||||
#define EVENT_MAX 4
|
#define EVENT_MAX 4
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ void TIMER_AddLoopEvent(uint8_t type, void (*func)(void), uint16_t loop_time)
|
||||||
void TIMER_DelLoopEvent(uint8_t type)
|
void TIMER_DelLoopEvent(uint8_t type)
|
||||||
{
|
{
|
||||||
event[type].enabled = 0;
|
event[type].enabled = 0;
|
||||||
|
time_lcm /= event[type].time;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TIMER_Count(void)
|
void TIMER_Count(void)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user