can finally works
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user