5 Commits
rtos ... master

Author SHA1 Message Date
eb6b82aea3 uart baud rate 2022-02-02 14:00:08 +03:00
a08371ee9a spi reg 2022-02-02 11:19:57 +03:00
13f4055735 add timer and uart trans reg 2022-02-02 10:53:58 +03:00
f1898e778e Начал убирать HAL-функции. Убрал косяк с UART 2022-02-01 21:34:12 +03:00
3163656574 Worked version 1kHz 2022-01-31 18:52:06 +03:00
9 changed files with 265 additions and 115 deletions

View File

@@ -9,17 +9,17 @@ CDefines=USE_HAL_DRIVER;STM32L432xx;USE_HAL_DRIVER;USE_HAL_DRIVER;
[PreviousGenFiles] [PreviousGenFiles]
AdvancedFolderStructure=true AdvancedFolderStructure=true
HeaderFileListSize=3 HeaderFileListSize=3
HeaderFiles#0=C:/Users/Maxim/Documents/STMGyro/Core/Inc/stm32l4xx_it.h HeaderFiles#0=C:/file/STMGyro/Core/Inc/stm32l4xx_it.h
HeaderFiles#1=C:/Users/Maxim/Documents/STMGyro/Core/Inc/stm32l4xx_hal_conf.h HeaderFiles#1=C:/file/STMGyro/Core/Inc/stm32l4xx_hal_conf.h
HeaderFiles#2=C:/Users/Maxim/Documents/STMGyro/Core/Inc/main.h HeaderFiles#2=C:/file/STMGyro/Core/Inc/main.h
HeaderFolderListSize=1 HeaderFolderListSize=1
HeaderPath#0=C:/Users/Maxim/Documents/STMGyro/Core/Inc HeaderPath#0=C:/file/STMGyro/Core/Inc
HeaderFiles=; HeaderFiles=;
SourceFileListSize=3 SourceFileListSize=3
SourceFiles#0=C:/Users/Maxim/Documents/STMGyro/Core/Src/stm32l4xx_it.c SourceFiles#0=C:/file/STMGyro/Core/Src/stm32l4xx_it.c
SourceFiles#1=C:/Users/Maxim/Documents/STMGyro/Core/Src/stm32l4xx_hal_msp.c SourceFiles#1=C:/file/STMGyro/Core/Src/stm32l4xx_hal_msp.c
SourceFiles#2=C:/Users/Maxim/Documents/STMGyro/Core/Src/main.c SourceFiles#2=C:/file/STMGyro/Core/Src/main.c
SourceFolderListSize=1 SourceFolderListSize=1
SourcePath#0=C:/Users/Maxim/Documents/STMGyro/Core/Src SourcePath#0=C:/file/STMGyro/Core/Src
SourceFiles=; SourceFiles=;

63
Core/Inc/my_defs.h Normal file
View File

@@ -0,0 +1,63 @@
/*
* my_defs.h
*
* Created on: 2 февр. 2022 г.
* Author: fedorenko
*/
#ifndef INC_MY_DEFS_H_
#define INC_MY_DEFS_H_
/* ------------------------
* Configuration
* ------------------------ */
#define COM_MES_MODE_NORMAL 0
#define COM_MES_MODE_FACTORY 1
#ifndef COM_MES_MODE
#define COM_MES_MODE COM_MES_MODE_NORMAL /* Mode selection */
#endif
#define COM_MES_CBIT_DISABLED 0
#define COM_MES_CBIT_ENABLED 1
#ifndef COM_MES_CBIT
#define COM_MES_CBIT COM_MES_CBIT_DISABLED /* CBIT selection */
#endif
#define COM_MES_RATE_RANGE_INT 0
#define COM_MES_RATE_RANGE_SPI 1
#ifndef COM_MES_RATE_RANGE
#define COM_MES_RATE_RANGE COM_MES_RATE_RANGE_INT /* Rate range selection */
#endif
#define COM_MES_RATE_RANGE_900 0u
#define COM_MES_RATE_RANGE_300 1u
#define COM_MES_RATE_RANGE_150 2u
#define COM_MES_RATE_RANGE_75 3u
#ifndef COM_MES_RATE_RANGE_VAL
#define COM_MES_RATE_RANGE_VAL COM_MES_RATE_RANGE_900 /* Rate range value selection */
#endif
#define SCALE_RATE_RANGE_900 8u
#define SCALE_RATE_RANGE_300 24u
#define SCALE_RATE_RANGE_150 48u
#define SCALE_RATE_RANGE_75 96u
/* ------------------------
* Errors
* ------------------------ */
#define ERROR_SIZE_SMALL 1
#define ERROR_CRC 2
#define ERROR_FAIL 3
#define ERROR_IDENTIFIER 4
#define ERROR_INVALID 5
#define ERROR_CBIT 6
#define ERROR_NORM 7
#define ERROR_RATE 8
#endif /* INC_MY_DEFS_H_ */

View File

@@ -76,7 +76,7 @@
#define HAL_SPI_MODULE_ENABLED #define HAL_SPI_MODULE_ENABLED
/*#define HAL_SRAM_MODULE_ENABLED */ /*#define HAL_SRAM_MODULE_ENABLED */
/*#define HAL_SWPMI_MODULE_ENABLED */ /*#define HAL_SWPMI_MODULE_ENABLED */
/*#define HAL_TIM_MODULE_ENABLED */ #define HAL_TIM_MODULE_ENABLED
/*#define HAL_TSC_MODULE_ENABLED */ /*#define HAL_TSC_MODULE_ENABLED */
#define HAL_UART_MODULE_ENABLED #define HAL_UART_MODULE_ENABLED
/*#define HAL_USART_MODULE_ENABLED */ /*#define HAL_USART_MODULE_ENABLED */

View File

@@ -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_Channel4_IRQHandler(void); void DMA1_Channel4_IRQHandler(void);
void TIM1_UP_TIM16_IRQHandler(void);
void SPI1_IRQHandler(void); void SPI1_IRQHandler(void);
void USART1_IRQHandler(void); void USART1_IRQHandler(void);
/* USER CODE BEGIN EFP */ /* USER CODE BEGIN EFP */

View File

@@ -25,6 +25,7 @@
/* USER CODE END Header */ /* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "gyro_mes.h" #include "gyro_mes.h"
#include "my_defs.h"
/* Private includes ----------------------------------------------------------*/ /* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN Includes */
@@ -40,55 +41,6 @@
/* USER CODE BEGIN PD */ /* USER CODE BEGIN PD */
/* ------------------------
* Configuration
* ------------------------ */
#define COM_MES_MODE_NORMAL 0
#define COM_MES_MODE_FACTORY 1
#ifndef COM_MES_MODE
#define COM_MES_MODE COM_MES_MODE_NORMAL /* Mode selection */
#endif
#define COM_MES_CBIT_DISABLED 0
#define COM_MES_CBIT_ENABLED 1
#ifndef COM_MES_CBIT
#define COM_MES_CBIT COM_MES_CBIT_DISABLED /* CBIT selection */
#endif
#define COM_MES_RATE_RANGE_INT 0
#define COM_MES_RATE_RANGE_SPI 1
#ifndef COM_MES_RATE_RANGE
#define COM_MES_RATE_RANGE COM_MES_RATE_RANGE_INT /* Rate range selection */
#endif
#define COM_MES_RATE_RANGE_900 0u
#define COM_MES_RATE_RANGE_300 1u
#define COM_MES_RATE_RANGE_150 2u
#define COM_MES_RATE_RANGE_75 3u
#ifndef COM_MES_RATE_RANGE_VAL
#define COM_MES_RATE_RANGE_VAL COM_MES_RATE_RANGE_900 /* Rate range value selection */
#endif
#define SCALE_RATE_RANGE_900 8u
#define SCALE_RATE_RANGE_300 24u
#define SCALE_RATE_RANGE_150 48u
#define SCALE_RATE_RANGE_75 96u
/* ------------------------
* Errors
* ------------------------ */
#define ERROR_SIZE_SMALL 1
#define ERROR_CRC 2
#define ERROR_FAIL 3
#define ERROR_IDENTIFIER 4
#define ERROR_INVALID 5
#define ERROR_CBIT 6
#define ERROR_NORM 7
#define ERROR_RATE 8
/* USER CODE END PD */ /* USER CODE END PD */
/* Private macro -------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/
@@ -154,10 +106,8 @@ int8_t comand_mes(uint8_t* pOut, size_t nLen)
int8_t status_mes(uint8_t* pMes, size_t nLen, struct sData *pOut) int8_t status_mes(uint8_t* pMes, size_t nLen, struct sData *pOut)
{ {
uint8_t rate_range_val = 0; uint8_t rate_range_val = 0;
uint8_t scale_rate = 0;
uint16_t rate_val = 0; uint16_t rate_val = 0;
uint16_t temp_val = 0; uint16_t temp_val = 0;
float scale_temp = 2.75;
if (nLen < 6u) return (-ERROR_SIZE_SMALL); if (nLen < 6u) return (-ERROR_SIZE_SMALL);
@@ -185,13 +135,13 @@ int8_t status_mes(uint8_t* pMes, size_t nLen, struct sData *pOut)
temp_val = ((uint16_t)pMes[3] << 8) | pMes[4]; temp_val = ((uint16_t)pMes[3] << 8) | pMes[4];
if(COM_MES_RATE_RANGE_VAL == COM_MES_RATE_RANGE_75) scale_rate = SCALE_RATE_RANGE_75; if(COM_MES_RATE_RANGE_VAL == COM_MES_RATE_RANGE_75) pOut->rate = (int16_t)rate_val / SCALE_RATE_RANGE_75;
else if(COM_MES_RATE_RANGE_VAL == COM_MES_RATE_RANGE_150) scale_rate = SCALE_RATE_RANGE_150; else if(COM_MES_RATE_RANGE_VAL == COM_MES_RATE_RANGE_150) pOut->rate = (int16_t)rate_val / SCALE_RATE_RANGE_150;
else if(COM_MES_RATE_RANGE_VAL == COM_MES_RATE_RANGE_300) scale_rate = SCALE_RATE_RANGE_300; else if(COM_MES_RATE_RANGE_VAL == COM_MES_RATE_RANGE_300) pOut->rate = (int16_t)rate_val / SCALE_RATE_RANGE_300;
else if(COM_MES_RATE_RANGE_VAL == COM_MES_RATE_RANGE_900) scale_rate = SCALE_RATE_RANGE_900; else if(COM_MES_RATE_RANGE_VAL == COM_MES_RATE_RANGE_900) pOut->rate = (int16_t)rate_val / SCALE_RATE_RANGE_900;
pOut->temp = (temp_val - 531) / scale_temp; pOut->temp = (temp_val - 531) / 2.75;
pOut->rate = (int16_t)rate_val / scale_rate;
return 0; return 0;
} }

View File

@@ -29,14 +29,24 @@
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */ /* USER CODE BEGIN PTD */
#define CS1_OFF() HAL_GPIO_WritePin(CS1_GPIO_Port, CS1_Pin, GPIO_PIN_SET) void GPIO_Set(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
#define CS1_ON() HAL_GPIO_WritePin(CS1_GPIO_Port, CS1_Pin, GPIO_PIN_RESET) {
#define CS2_OFF() HAL_GPIO_WritePin(CS2_GPIO_Port, CS2_Pin, GPIO_PIN_SET) GPIOx->BSRR = (uint32_t)GPIO_Pin;
#define CS2_ON() HAL_GPIO_WritePin(CS2_GPIO_Port, CS2_Pin, GPIO_PIN_RESET) }
#define CS3_OFF() HAL_GPIO_WritePin(CS3_GPIO_Port, CS3_Pin, GPIO_PIN_SET)
#define CS3_ON() HAL_GPIO_WritePin(CS3_GPIO_Port, CS3_Pin, GPIO_PIN_RESET) void GPIO_Reset(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
#define RESET_ON() HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET) {
#define RESET_OFF() HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_RESET) GPIOx->BRR = (uint32_t)GPIO_Pin;
}
#define CS1_OFF() GPIO_Set(CS1_GPIO_Port, CS1_Pin)
#define CS1_ON() GPIO_Reset(CS1_GPIO_Port, CS1_Pin)
#define CS2_OFF() GPIO_Set(CS2_GPIO_Port, CS2_Pin)
#define CS2_ON() GPIO_Reset(CS2_GPIO_Port, CS2_Pin)
#define CS3_OFF() GPIO_Set(CS3_GPIO_Port, CS3_Pin)
#define CS3_ON() GPIO_Reset(CS3_GPIO_Port, CS3_Pin)
#define RESET_ON() GPIO_Set(RESET_GPIO_Port, RESET_Pin)
#define RESET_OFF() GPIO_Reset(RESET_GPIO_Port, RESET_Pin)
/* USER CODE END PTD */ /* USER CODE END PTD */
/* Private define ------------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/
@@ -51,6 +61,8 @@
/* Private variables ---------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/
SPI_HandleTypeDef hspi1; SPI_HandleTypeDef hspi1;
TIM_HandleTypeDef htim1;
UART_HandleTypeDef huart1; UART_HandleTypeDef huart1;
DMA_HandleTypeDef hdma_usart1_tx; DMA_HandleTypeDef hdma_usart1_tx;
@@ -64,6 +76,7 @@ static void MX_GPIO_Init(void);
static void MX_SPI1_Init(void); static void MX_SPI1_Init(void);
static void MX_DMA_Init(void); static void MX_DMA_Init(void);
static void MX_USART1_UART_Init(void); static void MX_USART1_UART_Init(void);
static void MX_TIM1_Init(void);
/* USER CODE BEGIN PFP */ /* USER CODE BEGIN PFP */
/* USER CODE END PFP */ /* USER CODE END PFP */
@@ -72,7 +85,8 @@ static void MX_USART1_UART_Init(void);
/* USER CODE BEGIN 0 */ /* USER CODE BEGIN 0 */
uint8_t data_out[18] = {0}; uint8_t data_out[18] = {0};
uint8_t flag_receive = 0; uint8_t flag_receive = 0;
uint8_t flag_cs = 0; uint8_t flag_transmit = 0;
struct sData data[3];
/* USER CODE END 0 */ /* USER CODE END 0 */
/** /**
@@ -106,6 +120,7 @@ int main(void)
MX_SPI1_Init(); MX_SPI1_Init();
MX_DMA_Init(); MX_DMA_Init();
MX_USART1_UART_Init(); MX_USART1_UART_Init();
MX_TIM1_Init();
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
RESET_ON(); RESET_ON();
HAL_Delay(100); HAL_Delay(100);
@@ -113,45 +128,46 @@ int main(void)
/* Infinite loop */ /* Infinite loop */
/* USER CODE BEGIN WHILE */ /* USER CODE BEGIN WHILE */
struct sData data[3]; char str[19];
memset(str, 0, sizeof(str));
int8_t res = comand_mes(data_in, sizeof(data_in) / sizeof(data_in[0])); int8_t res = comand_mes(data_in, sizeof(data_in) / sizeof(data_in[0]));
if(res != 0) return res; if(res != 0) return res;
while (1) while (1)
{ {
flag_cs = 1; while(!flag_transmit);
CS1_ON(); CS1_ON();
res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, data_out, sizeof(data_in) / sizeof(data_in[0])); hspi1.Instance->DR = data_in[0]; // output something on MOSI while reading MISO
while ((hspi1.Instance->SR & SPI_FLAG_RXNE) == 0){} //Wait for Data Ready to Read
data_out[0] = hspi1.Instance->DR;
//res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, data_out, sizeof(data_in) / sizeof(data_in[0]));
while(!flag_receive && res == 0); while(!flag_receive && res == 0);
CS1_OFF(); CS1_OFF();
flag_receive = 0; flag_receive = 0;
flag_cs = 2;
CS2_ON();
res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, &data_out[6], sizeof(data_in) / sizeof(data_in[0]));
while(!flag_receive && res == 0);
CS2_ON();
hspi1.Instance->DR = data_in[0]; // output something on MOSI while reading MISO
while ((hspi1.Instance->SR & SPI_FLAG_RXNE) == 0){} //Wait for Data Ready to Read
data_out[0] = hspi1.Instance->DR;
//res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, &data_out[6], sizeof(data_in) / sizeof(data_in[0]));
while(!flag_receive && res == 0);
CS2_OFF(); CS2_OFF();
flag_receive = 0; flag_receive = 0;
flag_cs = 3;
CS3_ON(); CS3_ON();
res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, &data_out[12], sizeof(data_in) / sizeof(data_in[0])); hspi1.Instance->DR = data_in[0]; // output something on MOSI while reading MISO
while ((hspi1.Instance->SR & SPI_FLAG_RXNE) == 0){} //Wait for Data Ready to Read
data_out[0] = hspi1.Instance->DR;
//res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, &data_out[12], sizeof(data_in) / sizeof(data_in[0]));
while(!flag_receive && res == 0) ; while(!flag_receive && res == 0) ;
CS3_OFF(); CS3_OFF();
flag_receive = 0; flag_receive = 0;
int8_t res = status_mes(&data_out[0], 6u, &data[0]); status_mes(&data_out[0], 6u, &data[0]);
res += status_mes(&data_out[6], 6u, &data[1]); status_mes(&data_out[6], 6u, &data[1]);
res += status_mes(&data_out[12], 6u, &data[2]); status_mes(&data_out[12], 6u, &data[2]);
if(res == 0)
{ flag_transmit = 1;
char str[19];
memset(str, 0, sizeof(str));
sprintf (str, "%i;%i;%i;%i;%i;%i\r\n", data[0].rate, data[1].rate, data[2].rate, data[0].temp, data[1].temp, data[2].temp);
res = HAL_UART_Transmit_DMA(&huart1, (uint8_t*)str, sizeof(str) / sizeof(str[0]));
while(!flag_receive && res == 0) {
HAL_Delay(1);
}
}
/* USER CODE END WHILE */ /* USER CODE END WHILE */
/* USER CODE BEGIN 3 */ /* USER CODE BEGIN 3 */
@@ -246,6 +262,53 @@ static void MX_SPI1_Init(void)
} }
/**
* @brief TIM1 Initialization Function
* @param None
* @retval None
*/
static void MX_TIM1_Init(void)
{
/* USER CODE BEGIN TIM1_Init 0 */
/* USER CODE END TIM1_Init 0 */
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
/* USER CODE BEGIN TIM1_Init 1 */
/* USER CODE END TIM1_Init 1 */
htim1.Instance = TIM1;
htim1.Init.Prescaler = 79;
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
htim1.Init.Period = 65535;
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim1.Init.RepetitionCounter = 0;
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM1_Init 2 */
/* USER CODE END TIM1_Init 2 */
}
/** /**
* @brief USART1 Initialization Function * @brief USART1 Initialization Function
* @param None * @param None
@@ -262,13 +325,13 @@ static void MX_USART1_UART_Init(void)
/* USER CODE END USART1_Init 1 */ /* USER CODE END USART1_Init 1 */
huart1.Instance = USART1; huart1.Instance = USART1;
huart1.Init.BaudRate = 921600; huart1.Init.BaudRate = 460800;
huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Parity = UART_PARITY_NONE;
huart1.Init.Mode = UART_MODE_TX; huart1.Init.Mode = UART_MODE_TX;
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart1.Init.OverSampling = UART_OVERSAMPLING_8; huart1.Init.OverSampling = UART_OVERSAMPLING_16;
huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init(&huart1) != HAL_OK) if (HAL_UART_Init(&huart1) != HAL_OK)
@@ -335,18 +398,19 @@ static void MX_GPIO_Init(void)
/* USER CODE BEGIN 4 */ /* USER CODE BEGIN 4 */
void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi)
{ {
if(hspi == &hspi1) flag_receive = 1;
{
flag_receive = 1;
}
} }
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) /*void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{ {
if(huart == &huart1) flag_transmit = 0;
{ }*/
flag_receive = 1;
} void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if((USART1->ISR & USART_ISR_TXE) == 0 && (USART1->ISR & USART_ISR_TC) == 0 && (flag_transmit)) USART1->RDR = data[1].rate;
else USART1->RDR = 1234;
flag_transmit = 0;
} }
/* USER CODE END 4 */ /* USER CODE END 4 */

View File

@@ -149,6 +149,56 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
} }
/**
* @brief TIM_Base MSP Initialization
* This function configures the hardware resources used in this example
* @param htim_base: TIM_Base handle pointer
* @retval None
*/
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
{
if(htim_base->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspInit 0 */
/* USER CODE END TIM1_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_TIM1_CLK_ENABLE();
/* TIM1 interrupt Init */
HAL_NVIC_SetPriority(TIM1_UP_TIM16_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TIM1_UP_TIM16_IRQn);
/* USER CODE BEGIN TIM1_MspInit 1 */
/* USER CODE END TIM1_MspInit 1 */
}
}
/**
* @brief TIM_Base MSP De-Initialization
* This function freeze the hardware resources used in this example
* @param htim_base: TIM_Base handle pointer
* @retval None
*/
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
{
if(htim_base->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspDeInit 0 */
/* USER CODE END TIM1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM1_CLK_DISABLE();
/* TIM1 interrupt DeInit */
HAL_NVIC_DisableIRQ(TIM1_UP_TIM16_IRQn);
/* USER CODE BEGIN TIM1_MspDeInit 1 */
/* USER CODE END TIM1_MspDeInit 1 */
}
}
/** /**
* @brief UART MSP Initialization * @brief UART MSP Initialization
* This function configures the hardware resources used in this example * This function configures the hardware resources used in this example

View File

@@ -56,6 +56,7 @@
/* External variables --------------------------------------------------------*/ /* External variables --------------------------------------------------------*/
extern SPI_HandleTypeDef hspi1; extern SPI_HandleTypeDef hspi1;
extern TIM_HandleTypeDef htim1;
extern DMA_HandleTypeDef hdma_usart1_tx; extern DMA_HandleTypeDef hdma_usart1_tx;
extern UART_HandleTypeDef huart1; extern UART_HandleTypeDef huart1;
/* USER CODE BEGIN EV */ /* USER CODE BEGIN EV */
@@ -214,6 +215,20 @@ void DMA1_Channel4_IRQHandler(void)
/* USER CODE END DMA1_Channel4_IRQn 1 */ /* USER CODE END DMA1_Channel4_IRQn 1 */
} }
/**
* @brief This function handles TIM1 update interrupt and TIM16 global interrupt.
*/
void TIM1_UP_TIM16_IRQHandler(void)
{
/* USER CODE BEGIN TIM1_UP_TIM16_IRQn 0 */
/* USER CODE END TIM1_UP_TIM16_IRQn 0 */
HAL_TIM_IRQHandler(&htim1);
/* USER CODE BEGIN TIM1_UP_TIM16_IRQn 1 */
/* USER CODE END TIM1_UP_TIM16_IRQn 1 */
}
/** /**
* @brief This function handles SPI1 global interrupt. * @brief This function handles SPI1 global interrupt.
*/ */

View File

@@ -19,12 +19,14 @@ Mcu.IP1=NVIC
Mcu.IP2=RCC Mcu.IP2=RCC
Mcu.IP3=SPI1 Mcu.IP3=SPI1
Mcu.IP4=SYS Mcu.IP4=SYS
Mcu.IP5=USART1 Mcu.IP5=TIM1
Mcu.IPNb=6 Mcu.IP6=USART1
Mcu.IPNb=7
Mcu.Name=STM32L432K(B-C)Ux Mcu.Name=STM32L432K(B-C)Ux
Mcu.Package=UFQFPN32 Mcu.Package=UFQFPN32
Mcu.Pin0=PA1 Mcu.Pin0=PA1
Mcu.Pin1=PA2 Mcu.Pin1=PA2
Mcu.Pin10=VP_TIM1_VS_ClockSourceINT
Mcu.Pin2=PA3 Mcu.Pin2=PA3
Mcu.Pin3=PA5 Mcu.Pin3=PA5
Mcu.Pin4=PA6 Mcu.Pin4=PA6
@@ -33,7 +35,7 @@ Mcu.Pin6=PB0
Mcu.Pin7=PA9 Mcu.Pin7=PA9
Mcu.Pin8=PA10 Mcu.Pin8=PA10
Mcu.Pin9=VP_SYS_VS_Systick Mcu.Pin9=VP_SYS_VS_Systick
Mcu.PinsNb=10 Mcu.PinsNb=11
Mcu.ThirdPartyNb=0 Mcu.ThirdPartyNb=0
Mcu.UserConstants= Mcu.UserConstants=
Mcu.UserName=STM32L432KCUx Mcu.UserName=STM32L432KCUx
@@ -51,6 +53,7 @@ NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.SPI1_IRQn=true\:0\:0\:false\:false\:true\:true\:true NVIC.SPI1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true
NVIC.TIM1_UP_TIM16_IRQn=true\:0\:0\:false\:false\:true\:true\:true
NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
PA1.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP PA1.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
@@ -119,7 +122,7 @@ ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=STM32CubeIDE ProjectManager.TargetToolchain=STM32CubeIDE
ProjectManager.ToolChainLocation= ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=true ProjectManager.UnderRoot=true
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_SPI1_Init-SPI1-false-HAL-true,4-MX_DMA_Init-DMA-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_SPI1_Init-SPI1-false-HAL-true,4-MX_DMA_Init-DMA-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_TIM1_Init-TIM1-false-HAL-true
RCC.ADCFreq_Value=80000000 RCC.ADCFreq_Value=80000000
RCC.AHBFreq_Value=80000000 RCC.AHBFreq_Value=80000000
RCC.APB1Freq_Value=80000000 RCC.APB1Freq_Value=80000000
@@ -173,12 +176,16 @@ SPI1.Direction=SPI_DIRECTION_2LINES
SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler
SPI1.Mode=SPI_MODE_MASTER SPI1.Mode=SPI_MODE_MASTER
SPI1.VirtualType=VM_MASTER SPI1.VirtualType=VM_MASTER
USART1.BaudRate=921600 TIM1.IPParameters=Prescaler
TIM1.Prescaler=79
USART1.BaudRate=460800
USART1.IPParameters=VirtualMode-Asynchronous,BaudRate,OverSampling,Mode USART1.IPParameters=VirtualMode-Asynchronous,BaudRate,OverSampling,Mode
USART1.Mode=MODE_TX USART1.Mode=MODE_TX
USART1.OverSampling=UART_OVERSAMPLING_8 USART1.OverSampling=UART_OVERSAMPLING_16
USART1.VirtualMode-Asynchronous=VM_ASYNC USART1.VirtualMode-Asynchronous=VM_ASYNC
VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick VP_SYS_VS_Systick.Signal=SYS_VS_Systick
VP_TIM1_VS_ClockSourceINT.Mode=Internal
VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
board=custom board=custom
isbadioc=false isbadioc=false