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

@@ -23,11 +23,11 @@ Mcu.IPNb=4
Mcu.Name=STM32F103C(8-B)Tx
Mcu.Package=LQFP48
Mcu.Pin0=PC13-TAMPER-RTC
Mcu.Pin1=PC15-OSC32_OUT
Mcu.Pin2=PD0-OSC_IN
Mcu.Pin3=PD1-OSC_OUT
Mcu.Pin4=PA13
Mcu.Pin5=PA14
Mcu.Pin1=PD0-OSC_IN
Mcu.Pin2=PD1-OSC_OUT
Mcu.Pin3=PA13
Mcu.Pin4=PA14
Mcu.Pin5=PB7
Mcu.Pin6=PB8
Mcu.Pin7=PB9
Mcu.Pin8=VP_SYS_VS_Systick
@@ -40,6 +40,7 @@ MxDb.Version=DB.6.0.130
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.CAN1_RX1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.EXTI9_5_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
@@ -53,6 +54,10 @@ PA13.Mode=Serial_Wire
PA13.Signal=SYS_JTMS-SWDIO
PA14.Mode=Serial_Wire
PA14.Signal=SYS_JTCK-SWCLK
PB7.GPIOParameters=GPIO_PuPd
PB7.GPIO_PuPd=GPIO_PULLDOWN
PB7.Locked=true
PB7.Signal=GPXTI7
PB8.Locked=true
PB8.Mode=CAN_Activate
PB8.Signal=CAN_RX
@@ -61,10 +66,6 @@ PB9.Mode=CAN_Activate
PB9.Signal=CAN_TX
PC13-TAMPER-RTC.Locked=true
PC13-TAMPER-RTC.Signal=GPIO_Output
PC15-OSC32_OUT.GPIOParameters=GPIO_PuPd
PC15-OSC32_OUT.GPIO_PuPd=GPIO_PULLDOWN
PC15-OSC32_OUT.Locked=true
PC15-OSC32_OUT.Signal=GPXTI15
PD0-OSC_IN.Mode=HSE-External-Oscillator
PD0-OSC_IN.Signal=RCC_OSC_IN
PD1-OSC_OUT.Mode=HSE-External-Oscillator
@@ -87,7 +88,7 @@ ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true
ProjectManager.LibraryCopy=0
ProjectManager.MainLocation=Core/Src
ProjectManager.NoMain=false
ProjectManager.NoMain=true
ProjectManager.PreviousToolchain=
ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=CAN-B.ioc
@@ -122,8 +123,8 @@ RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.TimSysFreq_Value=72000000
RCC.USBFreq_Value=72000000
RCC.VCOOutput2Freq_Value=8000000
SH.GPXTI15.0=GPIO_EXTI15
SH.GPXTI15.ConfNb=1
SH.GPXTI7.0=GPIO_EXTI7
SH.GPXTI7.ConfNb=1
VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
board=custom

View File

@@ -56,6 +56,7 @@ void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void CAN1_RX1_IRQHandler(void);
void EXTI9_5_IRQHandler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */

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,17 +133,22 @@ 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)
{
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 */