Compare commits
5 Commits
64ce38fa15
...
4afa6702fb
| Author | SHA1 | Date | |
|---|---|---|---|
| 4afa6702fb | |||
| 907c0b170d | |||
| 60849ebb78 | |||
| aeb553994c | |||
| 5e28758a5e |
+3
-14
@@ -27,7 +27,6 @@ extern "C" {
|
|||||||
/* Includes ------------------------------------------------------------------*/
|
/* Includes ------------------------------------------------------------------*/
|
||||||
#include "stm32f4xx_hal.h"
|
#include "stm32f4xx_hal.h"
|
||||||
|
|
||||||
|
|
||||||
/* Private includes ----------------------------------------------------------*/
|
/* Private includes ----------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN Includes */
|
/* USER CODE BEGIN Includes */
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
@@ -48,20 +47,10 @@ extern "C" {
|
|||||||
/* USER CODE BEGIN EM */
|
/* USER CODE BEGIN EM */
|
||||||
#define DEBUG
|
#define DEBUG
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
static inline void ITM_Print(const char *str) {
|
#include <stdio.h>
|
||||||
while (*str) {
|
#define DEBUG_PRINT(...) printf(__VA_ARGS__)
|
||||||
uint32_t timeout = 1000;
|
|
||||||
while ((ITM->PORT[0].u32 == 0) && (timeout-- > 0));
|
|
||||||
|
|
||||||
if (timeout > 0) {
|
|
||||||
ITM->PORT[0].u8 = (uint8_t)(*str);
|
|
||||||
}
|
|
||||||
str++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#define DEBUG_PRINT(x) ITM_Print(x)
|
|
||||||
#else
|
#else
|
||||||
#define DEBUG_PRINT(x)
|
#define DEBUG_PRINT(...)
|
||||||
#endif
|
#endif
|
||||||
/* USER CODE END EM */
|
/* USER CODE END EM */
|
||||||
|
|
||||||
|
|||||||
+5
-2
@@ -32,7 +32,7 @@ extern osMessageQueueId_t xUARTQueue;
|
|||||||
* @param arguments: buffer, source, message
|
* @param arguments: buffer, source, message
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void format_can_message(char *buf, uint8_t source, const CanMessage_t *message)
|
static int format_can_message(char *buf, uint8_t source, const CanMessage_t *message)
|
||||||
{
|
{
|
||||||
const char hex[] = "0123456789ABCDEF";
|
const char hex[] = "0123456789ABCDEF";
|
||||||
|
|
||||||
@@ -72,6 +72,9 @@ static void format_can_message(char *buf, uint8_t source, const CanMessage_t *me
|
|||||||
|
|
||||||
buf[idx++] = '\r';
|
buf[idx++] = '\r';
|
||||||
buf[idx++] = '\n';
|
buf[idx++] = '\n';
|
||||||
|
buf[idx] = '\0';
|
||||||
|
|
||||||
|
return idx;
|
||||||
}
|
}
|
||||||
/* END format_can_message */
|
/* END format_can_message */
|
||||||
|
|
||||||
@@ -108,7 +111,7 @@ void vUARTLogger(void *argument)
|
|||||||
{
|
{
|
||||||
DEBUG_PRINT("CAN frame detected\r\n");
|
DEBUG_PRINT("CAN frame detected\r\n");
|
||||||
format_can_message(tx_buffer, message.source, &message);
|
format_can_message(tx_buffer, message.source, &message);
|
||||||
HAL_UART_Transmit_DMA(&huart1, (uint8_t*)tx_buffer, 44);
|
HAL_UART_Transmit_DMA(&huart1, (uint8_t*)tx_buffer, len);
|
||||||
osSemaphoreAcquire(xUARTDMASemaphore, osWaitForever);
|
osSemaphoreAcquire(xUARTDMASemaphore, osWaitForever);
|
||||||
DEBUG_PRINT("CAN frame sent via UART\r\n");
|
DEBUG_PRINT("CAN frame sent via UART\r\n");
|
||||||
}
|
}
|
||||||
|
|||||||
+28
-20
@@ -48,9 +48,9 @@ DMA_HandleTypeDef hdma_sdio_tx;
|
|||||||
UART_HandleTypeDef huart1;
|
UART_HandleTypeDef huart1;
|
||||||
|
|
||||||
/* USER CODE BEGIN PV */
|
/* USER CODE BEGIN PV */
|
||||||
LED_Config led_can1 = {GPIOB, GPIO_PIN_2};
|
LED_Config led_can1 = {GPIOB, GPIO_PIN_5};
|
||||||
LED_Config led_can2 = {GPIOB, GPIO_PIN_5};
|
LED_Config led_can2 = {GPIOB, GPIO_PIN_6};
|
||||||
LED_Config led_error = {GPIOB, GPIO_PIN_3};
|
LED_Config led_error = {GPIOB, GPIO_PIN_7};
|
||||||
|
|
||||||
osThreadId_t xCAN1rxTask;
|
osThreadId_t xCAN1rxTask;
|
||||||
osThreadId_t xCAN2rxTask;
|
osThreadId_t xCAN2rxTask;
|
||||||
@@ -76,6 +76,12 @@ static void MX_SDIO_SD_Init(void);
|
|||||||
static void MX_USART1_UART_Init(void);
|
static void MX_USART1_UART_Init(void);
|
||||||
|
|
||||||
/* USER CODE BEGIN PFP */
|
/* USER CODE BEGIN PFP */
|
||||||
|
int _write(int file, char *ptr, int len) {
|
||||||
|
for (int i = 0; i < len; i++) {
|
||||||
|
ITM_SendChar((*ptr++));
|
||||||
|
}
|
||||||
|
return len;
|
||||||
|
}
|
||||||
/* USER CODE END PFP */
|
/* USER CODE END PFP */
|
||||||
|
|
||||||
/* Private user code ---------------------------------------------------------*/
|
/* Private user code ---------------------------------------------------------*/
|
||||||
@@ -350,16 +356,16 @@ static void MX_SDIO_SD_Init(void)
|
|||||||
hsd.Init.BusWide = SDIO_BUS_WIDE_1B;
|
hsd.Init.BusWide = SDIO_BUS_WIDE_1B;
|
||||||
hsd.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_DISABLE;
|
hsd.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_DISABLE;
|
||||||
hsd.Init.ClockDiv = 0;
|
hsd.Init.ClockDiv = 0;
|
||||||
if (HAL_SD_Init(&hsd) != HAL_OK)
|
//if (HAL_SD_Init(&hsd) != HAL_OK)
|
||||||
{
|
//{
|
||||||
Error_Handler();
|
// Error_Handler();
|
||||||
}
|
//}
|
||||||
if (HAL_SD_ConfigWideBusOperation(&hsd, SDIO_BUS_WIDE_4B) != HAL_OK)
|
//if (HAL_SD_ConfigWideBusOperation(&hsd, SDIO_BUS_WIDE_4B) != HAL_OK)
|
||||||
{
|
//{
|
||||||
Error_Handler();
|
// Error_Handler();
|
||||||
}
|
//}
|
||||||
/* USER CODE BEGIN SDIO_Init 2 */
|
/* USER CODE BEGIN SDIO_Init 2 */
|
||||||
DEBUG_PRINT("SDIO initialized!\r\n");
|
//DEBUG_PRINT("SDIO initialized!\r\n");
|
||||||
/* USER CODE END SDIO_Init 2 */
|
/* USER CODE END SDIO_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -457,20 +463,22 @@ static void MX_GPIO_Init(void)
|
|||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pins : PA1 PA2 PA3 PA4
|
/*Configure GPIO pins : PA0 PA1 PA2 PA3
|
||||||
PA5 PA6 PA7 PA8
|
PA4 PA5 PA6 PA7
|
||||||
PA11 PA12 */
|
PA8 PA11 PA12 PA15 */
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4
|
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
|
||||||
|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8
|
|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7
|
||||||
|GPIO_PIN_11|GPIO_PIN_12;
|
|GPIO_PIN_8|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_15;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pins : PB0 PB1 PB2 PB10
|
/*Configure GPIO pins : PB0 PB1 PB2 PB10
|
||||||
PB11 PB14 PB15 */
|
PB11 PB14 PB15 PB3
|
||||||
|
PB4 */
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_10
|
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_10
|
||||||
|GPIO_PIN_11|GPIO_PIN_14|GPIO_PIN_15;
|
|GPIO_PIN_11|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_3
|
||||||
|
|GPIO_PIN_4;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||||
|
|||||||
+22
-34
@@ -68,30 +68,26 @@ Mcu.IP8=USART1
|
|||||||
Mcu.IPNb=9
|
Mcu.IPNb=9
|
||||||
Mcu.Name=STM32F405RGTx
|
Mcu.Name=STM32F405RGTx
|
||||||
Mcu.Package=LQFP64
|
Mcu.Package=LQFP64
|
||||||
Mcu.Pin0=PA0-WKUP
|
Mcu.Pin0=PB12
|
||||||
Mcu.Pin1=PB12
|
Mcu.Pin1=PB13
|
||||||
Mcu.Pin10=PC10
|
Mcu.Pin10=PC12
|
||||||
Mcu.Pin11=PC11
|
Mcu.Pin11=PD2
|
||||||
Mcu.Pin12=PC12
|
Mcu.Pin12=PB5
|
||||||
Mcu.Pin13=PD2
|
Mcu.Pin13=PB6
|
||||||
Mcu.Pin14=PB3
|
Mcu.Pin14=PB7
|
||||||
Mcu.Pin15=PB4
|
Mcu.Pin15=PB8
|
||||||
Mcu.Pin16=PB5
|
Mcu.Pin16=PB9
|
||||||
Mcu.Pin17=PB6
|
Mcu.Pin17=VP_FREERTOS_VS_CMSIS_V2
|
||||||
Mcu.Pin18=PB7
|
Mcu.Pin18=VP_SYS_VS_tim6
|
||||||
Mcu.Pin19=PB8
|
Mcu.Pin2=PC8
|
||||||
Mcu.Pin2=PB13
|
Mcu.Pin3=PC9
|
||||||
Mcu.Pin20=PB9
|
Mcu.Pin4=PA9
|
||||||
Mcu.Pin21=VP_FREERTOS_VS_CMSIS_V2
|
Mcu.Pin5=PA10
|
||||||
Mcu.Pin22=VP_SYS_VS_tim6
|
Mcu.Pin6=PA13
|
||||||
Mcu.Pin3=PC8
|
Mcu.Pin7=PA14
|
||||||
Mcu.Pin4=PC9
|
Mcu.Pin8=PC10
|
||||||
Mcu.Pin5=PA9
|
Mcu.Pin9=PC11
|
||||||
Mcu.Pin6=PA10
|
Mcu.PinsNb=19
|
||||||
Mcu.Pin7=PA13
|
|
||||||
Mcu.Pin8=PA14
|
|
||||||
Mcu.Pin9=PA15
|
|
||||||
Mcu.PinsNb=23
|
|
||||||
Mcu.ThirdPartyNb=0
|
Mcu.ThirdPartyNb=0
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32F405RGTx
|
Mcu.UserName=STM32F405RGTx
|
||||||
@@ -117,26 +113,18 @@ NVIC.TIM6_DAC_IRQn=true\:15\:0\:false\:false\:true\:false\:false\:true\:true
|
|||||||
NVIC.TimeBase=TIM6_DAC_IRQn
|
NVIC.TimeBase=TIM6_DAC_IRQn
|
||||||
NVIC.TimeBaseIP=TIM6
|
NVIC.TimeBaseIP=TIM6
|
||||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
PA0-WKUP.Mode=SYS_WakeUp0
|
|
||||||
PA0-WKUP.Signal=SYS_WKUP
|
|
||||||
PA10.Mode=Asynchronous
|
PA10.Mode=Asynchronous
|
||||||
PA10.Signal=USART1_RX
|
PA10.Signal=USART1_RX
|
||||||
PA13.Mode=JTAG_5_pins
|
PA13.Mode=Serial_Wire
|
||||||
PA13.Signal=SYS_JTMS-SWDIO
|
PA13.Signal=SYS_JTMS-SWDIO
|
||||||
PA14.Mode=JTAG_5_pins
|
PA14.Mode=Serial_Wire
|
||||||
PA14.Signal=SYS_JTCK-SWCLK
|
PA14.Signal=SYS_JTCK-SWCLK
|
||||||
PA15.Mode=JTAG_5_pins
|
|
||||||
PA15.Signal=SYS_JTDI
|
|
||||||
PA9.Mode=Asynchronous
|
PA9.Mode=Asynchronous
|
||||||
PA9.Signal=USART1_TX
|
PA9.Signal=USART1_TX
|
||||||
PB12.Mode=CAN_Activate
|
PB12.Mode=CAN_Activate
|
||||||
PB12.Signal=CAN2_RX
|
PB12.Signal=CAN2_RX
|
||||||
PB13.Mode=CAN_Activate
|
PB13.Mode=CAN_Activate
|
||||||
PB13.Signal=CAN2_TX
|
PB13.Signal=CAN2_TX
|
||||||
PB3.Mode=JTAG_5_pins
|
|
||||||
PB3.Signal=SYS_JTDO-SWO
|
|
||||||
PB4.Mode=JTAG_5_pins
|
|
||||||
PB4.Signal=SYS_JTRST
|
|
||||||
PB5.Locked=true
|
PB5.Locked=true
|
||||||
PB5.Signal=GPIO_Output
|
PB5.Signal=GPIO_Output
|
||||||
PB6.Locked=true
|
PB6.Locked=true
|
||||||
|
|||||||
Reference in New Issue
Block a user