mirror of
https://github.com/DashyFox/StackSport.git
synced 2025-06-28 05:09:32 +00:00
Uart working
This commit is contained in:
208
Core/Src/main.c
208
Core/Src/main.c
@ -23,8 +23,6 @@
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
|
||||
#include "GlobalDefines.h"
|
||||
|
||||
#include "usbd_cdc_if.h"
|
||||
#include "pca9685.h"
|
||||
#include "IR.h"
|
||||
@ -34,6 +32,7 @@
|
||||
#include "SimpleTimer.h"
|
||||
#include "RobotFunctions.h"
|
||||
#include "ShiftReg.h"
|
||||
#include "UART3_Handler.h"
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
@ -59,6 +58,7 @@ TIM_HandleTypeDef htim2;
|
||||
TIM_HandleTypeDef htim3;
|
||||
|
||||
UART_HandleTypeDef huart3;
|
||||
DMA_HandleTypeDef hdma_usart3_rx;
|
||||
|
||||
/* USER CODE BEGIN PV */
|
||||
|
||||
@ -68,8 +68,6 @@ uint8_t velosety[600];
|
||||
uint8_t rxcomlite = 0;
|
||||
uint8_t initcomlete = 0;
|
||||
|
||||
uint8_t uart_rx_buffer[UART_BUFFER_SIZE];
|
||||
|
||||
unsigned char Shiftreg[3];
|
||||
|
||||
uint8_t rejim[60]; // 0 - chislo rejimov, 1-6 - rejim1, 7-12 - rejim2...
|
||||
@ -84,10 +82,6 @@ uint16_t vi = 0;
|
||||
uint16_t timing1 = 0;
|
||||
uint16_t timing2 = 0;
|
||||
|
||||
struct Shot BufShots[MAX_NUMBER_SHOTS];
|
||||
struct Program BufPrograms;
|
||||
struct Macro BufMacro;
|
||||
|
||||
extern PCD_HandleTypeDef hpcd_USB_FS;
|
||||
|
||||
/* USER CODE END PV */
|
||||
@ -95,6 +89,7 @@ extern PCD_HandleTypeDef hpcd_USB_FS;
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
void SystemClock_Config(void);
|
||||
static void MX_GPIO_Init(void);
|
||||
static void MX_DMA_Init(void);
|
||||
static void MX_I2C1_Init(void);
|
||||
static void MX_TIM1_Init(void);
|
||||
static void MX_TIM2_Init(void);
|
||||
@ -126,7 +121,7 @@ int main(void)
|
||||
HAL_Init();
|
||||
|
||||
/* USER CODE BEGIN Init */
|
||||
|
||||
HAL_Delay(10);
|
||||
/* USER CODE END Init */
|
||||
|
||||
/* Configure the system clock */
|
||||
@ -142,10 +137,12 @@ int main(void)
|
||||
__HAL_RCC_USB_FORCE_RESET();
|
||||
HAL_Delay(10);
|
||||
__HAL_RCC_USB_RELEASE_RESET();
|
||||
HAL_Delay(10);
|
||||
/* USER CODE END SysInit */
|
||||
|
||||
/* Initialize all configured peripherals */
|
||||
MX_GPIO_Init();
|
||||
MX_DMA_Init();
|
||||
MX_I2C1_Init();
|
||||
MX_USB_DEVICE_Init();
|
||||
MX_TIM1_Init();
|
||||
@ -153,29 +150,20 @@ int main(void)
|
||||
MX_TIM3_Init();
|
||||
MX_USART3_UART_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
HAL_Delay(10);
|
||||
__HAL_RCC_USART3_CLK_ENABLE();
|
||||
HAL_Delay(10);
|
||||
__HAL_RCC_DMA1_CLK_ENABLE();
|
||||
HAL_Delay(10);
|
||||
|
||||
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); //PA8
|
||||
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2); //PA9
|
||||
|
||||
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); //PA0
|
||||
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2); //PA1
|
||||
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3); //PA2
|
||||
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4); //PA3
|
||||
|
||||
initPCA9685();
|
||||
|
||||
//BufShots[0].countRepeatShot = 5;
|
||||
//BufShots[0].speedRollerTop = 120;
|
||||
//BufShots[0].speedRollerBottom = 130;
|
||||
//BufShots[0].speedScrew = 50;
|
||||
//BufShots[0].rotationAxial = 90;
|
||||
//BufShots[0].rotationHorizontal = 90;
|
||||
//BufShots[0].rotationVertical = 90;
|
||||
|
||||
// SaveShot(0, &BufShots[0]);
|
||||
|
||||
// BufShots[1] = GetShot(0);
|
||||
|
||||
|
||||
Shiftreg[0] = 0x00; Shiftreg[1] = 0x44; Shiftreg[2] = 0x00; SetShiftReg(Shiftreg); HAL_Delay(10);
|
||||
Shiftreg[0] = 0x00; Shiftreg[1] = 0x66; Shiftreg[2] = 0x00; SetShiftReg(Shiftreg); HAL_Delay(10);
|
||||
@ -198,6 +186,7 @@ initcomlete = 1;
|
||||
|
||||
HAL_TIM_Base_Start_IT(&htim3);
|
||||
HAL_NVIC_EnableIRQ(TIM3_IRQn);
|
||||
UART3_START();
|
||||
|
||||
/* USER CODE END 2 */
|
||||
|
||||
@ -226,148 +215,7 @@ initcomlete = 1;
|
||||
{
|
||||
|
||||
IR_CMD_Handler();
|
||||
|
||||
// if (rxcomlite == 1)
|
||||
// {
|
||||
//
|
||||
// txdata[0] = 'O';
|
||||
// txdata[1] = 'K';
|
||||
// txdata[2] = '?';
|
||||
//
|
||||
// switch (rxdata[0])
|
||||
// {
|
||||
//
|
||||
// case 1:
|
||||
// {
|
||||
// SetServo(0, rxdata[1]);
|
||||
// txdata[0] = 'O';
|
||||
// txdata[1] = 'K';
|
||||
// txdata[2] = '1';
|
||||
//// CDC_Transmit_FS(txdata, 3);
|
||||
// break;
|
||||
// }
|
||||
//
|
||||
// case 2:
|
||||
// {
|
||||
// SetServo(1, rxdata[1]);
|
||||
// txdata[0] = 'O';
|
||||
// txdata[1] = 'K';
|
||||
// txdata[2] = '2';
|
||||
//// CDC_Transmit_FS(txdata, 3);
|
||||
// break;
|
||||
// }
|
||||
//
|
||||
// case 3:
|
||||
// {
|
||||
// SetServo(2, rxdata[1]);
|
||||
// txdata[0] = 'O';
|
||||
// txdata[1] = 'K';
|
||||
// txdata[2] = '3';
|
||||
//// CDC_Transmit_FS(txdata, 3);
|
||||
// break;
|
||||
// }
|
||||
//
|
||||
// case 4:
|
||||
// {
|
||||
// SetServo(0, rxdata[1]);
|
||||
// SetServo(1, rxdata[2]);
|
||||
// SetServo(2, rxdata[3]);
|
||||
//
|
||||
// Vz1 = rxdata[4]; // rolic verh 0..200
|
||||
// Vz2 = rxdata[5]; // rolic niz 0..200
|
||||
// vi = 0;
|
||||
//
|
||||
// // shnek 0..100
|
||||
// if (rxdata[6] < 101)
|
||||
// {
|
||||
// TIM1->CCR1 = 0;
|
||||
// TIM1->CCR2 = (uint16_t)(40 * rxdata[6]);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// TIM1->CCR1 = 0;
|
||||
// TIM1->CCR2 = 4000;
|
||||
// }
|
||||
//
|
||||
// txdata[0] = 'O';
|
||||
// txdata[1] = 'K';
|
||||
// txdata[2] = '4';
|
||||
//// CDC_Transmit_FS(txdata, 3);
|
||||
// break;
|
||||
// }
|
||||
//
|
||||
// case 5:
|
||||
// {
|
||||
// txdata[0] = LOBYTE(timing1);
|
||||
// txdata[1] = HIBYTE(timing1);
|
||||
//// CDC_Transmit_FS(txdata, 3);
|
||||
// break;
|
||||
// }
|
||||
// case 6:
|
||||
// {
|
||||
//// CDC_Transmit_FS(velosety, 600);
|
||||
// break;
|
||||
// }
|
||||
//
|
||||
// case 7:
|
||||
// {
|
||||
// rejim[0] = rxdata[1];
|
||||
// // copy to buffer
|
||||
// for (uint8_t i = 0; i < rejim[0]; i++)
|
||||
// {
|
||||
// rejim[(i * 6) + 1] = rxdata[(i * 6) + 2];
|
||||
// rejim[(i * 6) + 2] = rxdata[(i * 6) + 3];
|
||||
// rejim[(i * 6) + 3] = rxdata[(i * 6) + 4];
|
||||
// rejim[(i * 6) + 4] = rxdata[(i * 6) + 5];
|
||||
// rejim[(i * 6) + 5] = rxdata[(i * 6) + 6];
|
||||
// rejim[(i * 6) + 6] = rxdata[(i * 6) + 7];
|
||||
// }
|
||||
// // set rejim #1
|
||||
// SetServo(0, rejim[1]);
|
||||
// SetServo(1, rejim[2]);
|
||||
// SetServo(2, rejim[3]);
|
||||
// Vz1 = rejim[4];
|
||||
// Vz2 = rejim[5];
|
||||
// TIM1->CCR1 = 0;
|
||||
// TIM1->CCR2 = (uint16_t)(40 * rejim[6]);
|
||||
// // set avto
|
||||
// rejim_number = 1;
|
||||
// avto = 1;
|
||||
// break;
|
||||
// }
|
||||
// case 8:
|
||||
// { // stop avto
|
||||
// avto = 0;
|
||||
// rejim_number = 1;
|
||||
// // stop mecanics
|
||||
// SetServo(0, 90);
|
||||
// SetServo(1, 90);
|
||||
// SetServo(2, 90);
|
||||
// Vz1 = 100;
|
||||
// Vz2 = 100;
|
||||
// TIM1->CCR1 = 0;
|
||||
// TIM1->CCR2 = 0;
|
||||
//
|
||||
// break;
|
||||
// }
|
||||
//
|
||||
// case 9:
|
||||
// {
|
||||
// txdata[0] = avto;
|
||||
// txdata[1] = rejim_number;
|
||||
//// CDC_Transmit_FS(txdata, 3);
|
||||
//
|
||||
// break;
|
||||
// }
|
||||
//
|
||||
// default:
|
||||
// break;
|
||||
// }
|
||||
//
|
||||
// rxcomlite = 0;
|
||||
//
|
||||
// // // HAL_Delay(1000);
|
||||
// }
|
||||
UART3_Handler();
|
||||
|
||||
forTimer(blinkTimer, 500)
|
||||
{
|
||||
@ -693,7 +541,7 @@ static void MX_USART3_UART_Init(void)
|
||||
|
||||
/* USER CODE END USART3_Init 1 */
|
||||
huart3.Instance = USART3;
|
||||
huart3.Init.BaudRate = 115200;
|
||||
huart3.Init.BaudRate = 9600;
|
||||
huart3.Init.WordLength = UART_WORDLENGTH_8B;
|
||||
huart3.Init.StopBits = UART_STOPBITS_1;
|
||||
huart3.Init.Parity = UART_PARITY_NONE;
|
||||
@ -705,14 +553,30 @@ static void MX_USART3_UART_Init(void)
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN USART3_Init 2 */
|
||||
if (HAL_UART_Receive_IT(&huart3, uart_rx_buffer, UART_BUFFER_SIZE) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
// if (HAL_UART_Receive_IT(&huart3, uart_rx_buffer, UART_BUFFER_SIZE) != HAL_OK)
|
||||
// {
|
||||
// Error_Handler();
|
||||
// }
|
||||
/* USER CODE END USART3_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable DMA controller clock
|
||||
*/
|
||||
static void MX_DMA_Init(void)
|
||||
{
|
||||
|
||||
/* DMA controller clock enable */
|
||||
__HAL_RCC_DMA1_CLK_ENABLE();
|
||||
|
||||
/* DMA interrupt init */
|
||||
/* DMA1_Channel3_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 2, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief GPIO Initialization Function
|
||||
* @param None
|
||||
@ -763,10 +627,10 @@ static void MX_GPIO_Init(void)
|
||||
HAL_GPIO_Init(IR_EXT_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/* EXTI interrupt init*/
|
||||
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
|
||||
HAL_NVIC_SetPriority(EXTI0_IRQn, 7, 0);
|
||||
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
|
||||
|
||||
HAL_NVIC_SetPriority(EXTI1_IRQn, 0, 0);
|
||||
HAL_NVIC_SetPriority(EXTI1_IRQn, 7, 0);
|
||||
HAL_NVIC_EnableIRQ(EXTI1_IRQn);
|
||||
|
||||
/* USER CODE BEGIN MX_GPIO_Init_2 */
|
||||
|
Reference in New Issue
Block a user