verified measurements from spi read for imu

This commit is contained in:
Richard Koeppe
2024-06-22 15:38:23 +00:00
parent a0f16e99ea
commit e2baacbc92
10 changed files with 232 additions and 69 deletions

View File

@ -55,6 +55,7 @@ void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void USB_LP_CAN_RX0_IRQHandler(void);
void CAN_RX1_IRQHandler(void);
/* USER CODE BEGIN EFP */

View File

@ -19,10 +19,10 @@
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include <Converter.h>
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include <canhalal.h>
#include <Converter.h>
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
@ -94,12 +94,30 @@ int main(void) {
MX_SPI1_Init();
/* USER CODE BEGIN 2 */
// CAN_FilterTypeDef canfilterconfig;
// canfilterconfig.FilterActivation = ENABLE;
// canfilterconfig.FilterBank = 1; // which filter bank to use from the assigned ones
// canfilterconfig.FilterFIFOAssignment = CAN_FILTER_FIFO0;
// canfilterconfig.FilterIdHigh = 0x0000;
// canfilterconfig.FilterIdLow = 0x0000;
// canfilterconfig.FilterMaskIdHigh = 0x0000;
// canfilterconfig.FilterMaskIdLow = 0x0000;
// canfilterconfig.FilterMode = CAN_FILTERMODE_IDMASK;
// canfilterconfig.FilterScale = CAN_FILTERSCALE_32BIT;
// canfilterconfig.SlaveStartFilterBank = 20; // how many filters to assign to the CAN1 (master can)
// HAL_CAN_ConfigFilter(&hcan, &canfilterconfig);
ftcan_init(&hcan);
ftcan_add_filter(&hcan, 0x10, 0x0000);
// if (HAL_CAN_ActivateNotification(&hcan, CAN_IT_RX_FIFO0_MSG_PENDING) != HAL_OK) {
// Error_Handler();
// }
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1) {
spi2can(&hspi1, &hcan);
// spi2can(&hspi1, &hcan);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
@ -238,6 +256,20 @@ static void MX_GPIO_Init(void) {
/* USER CODE BEGIN 4 */
CAN_RxHeaderTypeDef RxHeader;
uint8_t RxData[8];
void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) {
if (HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO0, &RxHeader, RxData) != HAL_OK) {
Error_Handler();
}
}
void HAL_CAN_RxFifo1MsgPendingCallback(CAN_HandleTypeDef *hcan) {
if (HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO0, &RxHeader, RxData) != HAL_OK) {
Error_Handler();
}
}
/* USER CODE END 4 */
/**

View File

@ -107,6 +107,8 @@ void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan)
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* CAN interrupt Init */
HAL_NVIC_SetPriority(USB_LP_CAN_RX0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USB_LP_CAN_RX0_IRQn);
HAL_NVIC_SetPriority(CAN_RX1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(CAN_RX1_IRQn);
/* USER CODE BEGIN CAN_MspInit 1 */
@ -139,6 +141,7 @@ void HAL_CAN_MspDeInit(CAN_HandleTypeDef* hcan)
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);
/* CAN interrupt DeInit */
HAL_NVIC_DisableIRQ(USB_LP_CAN_RX0_IRQn);
HAL_NVIC_DisableIRQ(CAN_RX1_IRQn);
/* USER CODE BEGIN CAN_MspDeInit 1 */

View File

@ -198,6 +198,20 @@ void SysTick_Handler(void)
/* please refer to the startup file (startup_stm32f3xx.s). */
/******************************************************************************/
/**
* @brief This function handles USB low priority or CAN_RX0 interrupts.
*/
void USB_LP_CAN_RX0_IRQHandler(void)
{
/* USER CODE BEGIN USB_LP_CAN_RX0_IRQn 0 */
/* USER CODE END USB_LP_CAN_RX0_IRQn 0 */
HAL_CAN_IRQHandler(&hcan);
/* USER CODE BEGIN USB_LP_CAN_RX0_IRQn 1 */
/* USER CODE END USB_LP_CAN_RX0_IRQn 1 */
}
/**
* @brief This function handles CAN RX1 interrupt.
*/