can finally works

This commit is contained in:
2025-06-25 15:16:52 -07:00
parent 9b142b4af2
commit f05e4aa006
5 changed files with 53 additions and 21 deletions

View File

@@ -60,11 +60,15 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pin : PC15 */
GPIO_InitStruct.Pin = GPIO_PIN_15;
/*Configure GPIO pin : PB7 */
GPIO_InitStruct.Pin = GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
}

View File

@@ -67,6 +67,10 @@ uint32_t TxMailbox;
uint8_t isValidData;
uint8_t status;
uint32_t lastDebounceTime = 0;
const uint32_t debounceDelay = 50;
uint8_t delayLED = 0 ;
/* USER CODE END 0 */
/**
@@ -112,13 +116,16 @@ int main(void)
TxData[0] = 0x1;
// milliseconds
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
//HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
HAL_Delay(delayLED*100);
}
/* USER CODE END 3 */
}
@@ -126,15 +133,20 @@ int main(void)
void HAL_CAN_RxFifo1MsgPendingCallback(CAN_HandleTypeDef *hcan)
{
HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO1, &RxHeader, RxData);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13,RxData[0]);
delayLED+=RxData[0];
}
void HAL_GPIO_EXTI15_Callback(uint16_t GPIO_Pin)
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_15)
if(GPIO_Pin == GPIO_PIN_7)
{
TxData[0] ^= 1;
HAL_CAN_AddTxMessage(&hcan, &TxHeader, TxData, &TxMailbox);
uint32_t currentTime = HAL_GetTick();
if ((currentTime - lastDebounceTime) > debounceDelay)
{
lastDebounceTime = currentTime;
TxData[0] ^= 1;
HAL_CAN_AddTxMessage(&hcan, &TxHeader, TxData, &TxMailbox);
}
}
}

View File

@@ -212,6 +212,20 @@ void CAN1_RX1_IRQHandler(void)
/* USER CODE END CAN1_RX1_IRQn 1 */
}
/**
* @brief This function handles EXTI line[9:5] interrupts.
*/
void EXTI9_5_IRQHandler(void)
{
/* USER CODE BEGIN EXTI9_5_IRQn 0 */
/* USER CODE END EXTI9_5_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_7);
/* USER CODE BEGIN EXTI9_5_IRQn 1 */
/* USER CODE END EXTI9_5_IRQn 1 */
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */