Вроде все
This commit is contained in:
@@ -19,6 +19,8 @@
|
|||||||
/* Includes ------------------------------------------------------------------*/
|
/* Includes ------------------------------------------------------------------*/
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "cmsis_os.h"
|
#include "cmsis_os.h"
|
||||||
|
#include "gyro_mes.h"
|
||||||
|
#include "stdio.h"
|
||||||
|
|
||||||
/* Private includes ----------------------------------------------------------*/
|
/* Private includes ----------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN Includes */
|
/* USER CODE BEGIN Includes */
|
||||||
@@ -73,7 +75,6 @@ void StartCalcsUartTask(void const * argument);
|
|||||||
|
|
||||||
/* Private user code ---------------------------------------------------------*/
|
/* Private user code ---------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN 0 */
|
/* USER CODE BEGIN 0 */
|
||||||
uint8_t data_in[6] = {0};
|
|
||||||
uint8_t data_out[6] = {0};
|
uint8_t data_out[6] = {0};
|
||||||
uint8_t flag_receive = 0;
|
uint8_t flag_receive = 0;
|
||||||
uint8_t flag_cs = 0;
|
uint8_t flag_cs = 0;
|
||||||
@@ -88,7 +89,7 @@ xSemaphoreHandle semaphoreBin;
|
|||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
|
uint8_t data_in[6] = {0};
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
|
||||||
/* MCU Configuration--------------------------------------------------------*/
|
/* MCU Configuration--------------------------------------------------------*/
|
||||||
@@ -149,12 +150,15 @@ int main(void)
|
|||||||
/* We should never get here as control is now taken by the scheduler */
|
/* We should never get here as control is now taken by the scheduler */
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
/* USER CODE BEGIN WHILE */
|
/* USER CODE BEGIN WHILE */
|
||||||
|
int8_t res = comand_mes(data_in, sizeof(data_in) / sizeof(data_in[0]));
|
||||||
|
if(res != 0) return res;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
flag_cs = 1;
|
flag_cs = 1;
|
||||||
CS1_ON();
|
CS1_ON();
|
||||||
HAL_SPI_Transmit_DMA(&hspi1, data_in, sizeof(data_in));
|
HAL_SPI_Transmit_DMA(&hspi1, data_in, sizeof(data_in));
|
||||||
while(!flag_receive) {
|
while(!flag_receive) {
|
||||||
|
HAL_Delay(1);
|
||||||
}
|
}
|
||||||
CS1_OFF();
|
CS1_OFF();
|
||||||
flag_receive = 0;
|
flag_receive = 0;
|
||||||
@@ -162,6 +166,7 @@ int main(void)
|
|||||||
CS2_ON();
|
CS2_ON();
|
||||||
HAL_SPI_Transmit_DMA(&hspi1, data_in, sizeof(data_in));
|
HAL_SPI_Transmit_DMA(&hspi1, data_in, sizeof(data_in));
|
||||||
while(!flag_receive) {
|
while(!flag_receive) {
|
||||||
|
HAL_Delay(1);
|
||||||
}
|
}
|
||||||
CS2_OFF();
|
CS2_OFF();
|
||||||
flag_receive = 0;
|
flag_receive = 0;
|
||||||
@@ -169,6 +174,7 @@ int main(void)
|
|||||||
CS3_ON();
|
CS3_ON();
|
||||||
HAL_SPI_Transmit_DMA(&hspi1, data_in, sizeof(data_in));
|
HAL_SPI_Transmit_DMA(&hspi1, data_in, sizeof(data_in));
|
||||||
while(!flag_receive) {
|
while(!flag_receive) {
|
||||||
|
HAL_Delay(1);
|
||||||
}
|
}
|
||||||
flag_receive = 0;
|
flag_receive = 0;
|
||||||
/* USER CODE END WHILE */
|
/* USER CODE END WHILE */
|
||||||
@@ -377,30 +383,23 @@ void StartCalcsUartTask(void const * argument)
|
|||||||
{
|
{
|
||||||
/* USER CODE BEGIN 5 */
|
/* USER CODE BEGIN 5 */
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
|
struct sData data;
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
|
|
||||||
xSemaphoreTake(semaphoreBin, portMAX_DELAY);
|
xSemaphoreTake(semaphoreBin, portMAX_DELAY);
|
||||||
if(flag_cs == 1) {
|
if(xSemaphoreTake(mutex, portMAX_DELAY) == pdTRUE) {
|
||||||
if(xSemaphoreTake(mutex, portMAX_DELAY) == pdTRUE) {
|
int8_t res = status_mes(data_out, sizeof(data_out) / sizeof(data_out), &data);
|
||||||
//ЗАПИСЬ ДЛЯ ПЕРВОГО ГИРОСКОПА
|
if(res == 0)
|
||||||
HAL_UART_Transmit_DMA(&huart1, data_in, sizeof(data_in));
|
{
|
||||||
|
char str[30];
|
||||||
|
sprintf (str, "Gyro%u! Temp = %i; Rate = %i.", flag_cs, data.temp, data.rate);
|
||||||
|
HAL_UART_Transmit_DMA(&huart1, (uint8_t*)str, sizeof(str));
|
||||||
}
|
}
|
||||||
xSemaphoreGive(mutex);
|
|
||||||
}
|
|
||||||
else if(flag_cs == 2) {
|
|
||||||
if(xSemaphoreTake(mutex, portMAX_DELAY) == pdTRUE ) {
|
|
||||||
//ЗАПИСЬ ДЛЯ ВТОРОГО ГИРОСКОПА
|
|
||||||
HAL_UART_Transmit_DMA(&huart1, data_in, sizeof(data_in));
|
|
||||||
}
|
|
||||||
xSemaphoreGive(mutex);
|
|
||||||
}
|
|
||||||
else if(flag_cs == 3) {
|
|
||||||
if(xSemaphoreTake(mutex, portMAX_DELAY) == pdTRUE ) {
|
|
||||||
//ЗАПИСЬ ДЛЯ ВТОРОГО ГИРОСКОПА
|
|
||||||
HAL_UART_Transmit_DMA(&huart1, data_in, sizeof(data_in));
|
|
||||||
}
|
|
||||||
xSemaphoreGive(mutex);
|
|
||||||
}
|
}
|
||||||
|
xSemaphoreGive(mutex);
|
||||||
|
|
||||||
osDelay(1);
|
osDelay(1);
|
||||||
}
|
}
|
||||||
/* USER CODE END 5 */
|
/* USER CODE END 5 */
|
||||||
|
|||||||
Reference in New Issue
Block a user