working transmit data
This commit is contained in:
11
firmware/components/CAN/CAN-B/.project
Normal file
11
firmware/components/CAN/CAN-B/.project
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>CAN-B</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -15,6 +15,7 @@
|
||||
"/home/kymkim/.platformio/packages/framework-stm32cubef1/Drivers/STM32F1xx_HAL_Driver/Inc",
|
||||
"/home/kymkim/.platformio/packages/framework-stm32cubef1/Drivers/STM32F1xx_HAL_Driver/Src",
|
||||
"/home/kymkim/.platformio/packages/framework-stm32cubef1/Drivers/CMSIS/DSP/Include",
|
||||
"/home/kymkim/Projects/modular-kbd/firmware/components/CAN/CAN-B/.pio/libdeps/bluepill_f103c8/Unity/src",
|
||||
"/home/kymkim/.platformio/packages/framework-stm32cubef1/Drivers/BSP/Components/Common",
|
||||
"/home/kymkim/.platformio/packages/framework-stm32cubef1/Drivers/BSP/Components/ak4343",
|
||||
"/home/kymkim/.platformio/packages/framework-stm32cubef1/Drivers/BSP/Components/cs43l22",
|
||||
@@ -68,6 +69,7 @@
|
||||
"/home/kymkim/.platformio/packages/framework-stm32cubef1/Drivers/STM32F1xx_HAL_Driver/Inc",
|
||||
"/home/kymkim/.platformio/packages/framework-stm32cubef1/Drivers/STM32F1xx_HAL_Driver/Src",
|
||||
"/home/kymkim/.platformio/packages/framework-stm32cubef1/Drivers/CMSIS/DSP/Include",
|
||||
"/home/kymkim/Projects/modular-kbd/firmware/components/CAN/CAN-B/.pio/libdeps/bluepill_f103c8/Unity/src",
|
||||
"/home/kymkim/.platformio/packages/framework-stm32cubef1/Drivers/BSP/Components/Common",
|
||||
"/home/kymkim/.platformio/packages/framework-stm32cubef1/Drivers/BSP/Components/ak4343",
|
||||
"/home/kymkim/.platformio/packages/framework-stm32cubef1/Drivers/BSP/Components/cs43l22",
|
||||
|
||||
@@ -2,11 +2,13 @@
|
||||
CAD.formats=
|
||||
CAD.pinconfig=
|
||||
CAD.provider=
|
||||
CAN.CalculateBaudRate=800000
|
||||
CAN.CalculateTimeBit=1250
|
||||
CAN.CalculateTimeQuantum=416.6666666666667
|
||||
CAN.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,Prescaler,SJW
|
||||
CAN.Prescaler=15
|
||||
CAN.BS1=CAN_BS1_13TQ
|
||||
CAN.BS2=CAN_BS2_2TQ
|
||||
CAN.CalculateBaudRate=125000
|
||||
CAN.CalculateTimeBit=8000
|
||||
CAN.CalculateTimeQuantum=500.0
|
||||
CAN.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,Prescaler,SJW,BS1,BS2
|
||||
CAN.Prescaler=18
|
||||
CAN.SJW=CAN_SJW_1TQ
|
||||
File.Version=6
|
||||
GPIO.groupedBy=
|
||||
@@ -21,14 +23,15 @@ Mcu.IPNb=4
|
||||
Mcu.Name=STM32F103C(8-B)Tx
|
||||
Mcu.Package=LQFP48
|
||||
Mcu.Pin0=PC13-TAMPER-RTC
|
||||
Mcu.Pin1=PD0-OSC_IN
|
||||
Mcu.Pin2=PD1-OSC_OUT
|
||||
Mcu.Pin3=PA11
|
||||
Mcu.Pin4=PA12
|
||||
Mcu.Pin5=PA13
|
||||
Mcu.Pin6=PA14
|
||||
Mcu.Pin7=VP_SYS_VS_Systick
|
||||
Mcu.PinsNb=8
|
||||
Mcu.Pin1=PC15-OSC32_OUT
|
||||
Mcu.Pin2=PD0-OSC_IN
|
||||
Mcu.Pin3=PD1-OSC_OUT
|
||||
Mcu.Pin4=PA13
|
||||
Mcu.Pin5=PA14
|
||||
Mcu.Pin6=PB8
|
||||
Mcu.Pin7=PB9
|
||||
Mcu.Pin8=VP_SYS_VS_Systick
|
||||
Mcu.PinsNb=9
|
||||
Mcu.ThirdPartyNb=0
|
||||
Mcu.UserConstants=
|
||||
Mcu.UserName=STM32F103C8Tx
|
||||
@@ -46,16 +49,22 @@ NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
|
||||
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
|
||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
PA11.Mode=CAN_Activate
|
||||
PA11.Signal=CAN_RX
|
||||
PA12.Mode=CAN_Activate
|
||||
PA12.Signal=CAN_TX
|
||||
PA13.Mode=Serial_Wire
|
||||
PA13.Signal=SYS_JTMS-SWDIO
|
||||
PA14.Mode=Serial_Wire
|
||||
PA14.Signal=SYS_JTCK-SWCLK
|
||||
PB8.Locked=true
|
||||
PB8.Mode=CAN_Activate
|
||||
PB8.Signal=CAN_RX
|
||||
PB9.Locked=true
|
||||
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
|
||||
@@ -65,7 +74,7 @@ ProjectManager.AskForMigrate=true
|
||||
ProjectManager.BackupPrevious=false
|
||||
ProjectManager.CompilerOptimize=6
|
||||
ProjectManager.ComputerToolchain=false
|
||||
ProjectManager.CoupleFile=false
|
||||
ProjectManager.CoupleFile=true
|
||||
ProjectManager.CustomerFirmwarePackage=
|
||||
ProjectManager.DefaultFWLocation=true
|
||||
ProjectManager.DeletePrevious=true
|
||||
@@ -86,12 +95,12 @@ ProjectManager.ProjectName=CAN-B
|
||||
ProjectManager.ProjectStructure=
|
||||
ProjectManager.RegisterCallBack=
|
||||
ProjectManager.StackSize=0x400
|
||||
ProjectManager.TargetToolchain=EWARM V8.32
|
||||
ProjectManager.TargetToolchain=CMake
|
||||
ProjectManager.ToolChainLocation=
|
||||
ProjectManager.UAScriptAfterPath=
|
||||
ProjectManager.UAScriptBeforePath=
|
||||
ProjectManager.UnderRoot=false
|
||||
ProjectManager.functionlistsort=
|
||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_CAN_Init-CAN-false-HAL-true
|
||||
RCC.ADCFreqValue=36000000
|
||||
RCC.AHBFreq_Value=72000000
|
||||
RCC.APB1CLKDivider=RCC_HCLK_DIV2
|
||||
@@ -113,6 +122,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
|
||||
VP_SYS_VS_Systick.Mode=SysTick
|
||||
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
|
||||
board=custom
|
||||
|
||||
@@ -38,11 +38,11 @@ void MX_CAN_Init(void)
|
||||
|
||||
/* USER CODE END CAN_Init 1 */
|
||||
hcan.Instance = CAN1;
|
||||
hcan.Init.Prescaler = 15;
|
||||
hcan.Init.Prescaler = 18;
|
||||
hcan.Init.Mode = CAN_MODE_NORMAL;
|
||||
hcan.Init.SyncJumpWidth = CAN_SJW_1TQ;
|
||||
hcan.Init.TimeSeg1 = CAN_BS1_1TQ;
|
||||
hcan.Init.TimeSeg2 = CAN_BS2_1TQ;
|
||||
hcan.Init.TimeSeg1 = CAN_BS1_13TQ;
|
||||
hcan.Init.TimeSeg2 = CAN_BS2_2TQ;
|
||||
hcan.Init.TimeTriggeredMode = DISABLE;
|
||||
hcan.Init.AutoBusOff = DISABLE;
|
||||
hcan.Init.AutoWakeUp = DISABLE;
|
||||
@@ -56,7 +56,7 @@ void MX_CAN_Init(void)
|
||||
/* USER CODE BEGIN CAN_Init 2 */
|
||||
CAN_FilterTypeDef canfilterconf;
|
||||
canfilterconf.FilterActivation = CAN_FILTER_ENABLE;
|
||||
canfilterconf.FilterBank = 18;
|
||||
canfilterconf.FilterBank = 0;
|
||||
canfilterconf.FilterFIFOAssignment = CAN_FILTER_FIFO1;
|
||||
canfilterconf.FilterIdHigh = 0x399 << 5;
|
||||
canfilterconf.FilterIdLow = 0x0000;
|
||||
@@ -81,20 +81,22 @@ void HAL_CAN_MspInit(CAN_HandleTypeDef* canHandle)
|
||||
/* CAN1 clock enable */
|
||||
__HAL_RCC_CAN1_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
/**CAN GPIO Configuration
|
||||
PA11 ------> CAN_RX
|
||||
PA12 ------> CAN_TX
|
||||
PB8 ------> CAN_RX
|
||||
PB9 ------> CAN_TX
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_11;
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_8;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_12;
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_9;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
__HAL_AFIO_REMAP_CAN1_2();
|
||||
|
||||
/* CAN1 interrupt Init */
|
||||
HAL_NVIC_SetPriority(CAN1_RX1_IRQn, 0, 0);
|
||||
@@ -117,10 +119,10 @@ void HAL_CAN_MspDeInit(CAN_HandleTypeDef* canHandle)
|
||||
__HAL_RCC_CAN1_CLK_DISABLE();
|
||||
|
||||
/**CAN GPIO Configuration
|
||||
PA11 ------> CAN_RX
|
||||
PA12 ------> CAN_TX
|
||||
PB8 ------> CAN_RX
|
||||
PB9 ------> CAN_TX
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);
|
||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_8|GPIO_PIN_9);
|
||||
|
||||
/* CAN1 interrupt Deinit */
|
||||
HAL_NVIC_DisableIRQ(CAN1_RX1_IRQn);
|
||||
|
||||
@@ -48,6 +48,7 @@ void MX_GPIO_Init(void)
|
||||
__HAL_RCC_GPIOC_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
|
||||
@@ -59,11 +60,11 @@ void MX_GPIO_Init(void)
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PA10 (Input with Pull-Down) */
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_10;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||
/*Configure GPIO pin : PC15 */
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_15;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -65,6 +65,7 @@ uint8_t RxData[8];
|
||||
uint32_t TxMailbox;
|
||||
|
||||
uint8_t isValidData;
|
||||
uint8_t status;
|
||||
|
||||
/* USER CODE END 0 */
|
||||
|
||||
@@ -102,17 +103,14 @@ int main(void)
|
||||
|
||||
HAL_CAN_Start(&hcan);
|
||||
HAL_CAN_ActivateNotification(&hcan, CAN_IT_RX_FIFO1_MSG_PENDING);
|
||||
HAL_Delay(50);
|
||||
|
||||
TxHeader.DLC = 2;
|
||||
TxHeader.DLC = 1;
|
||||
TxHeader.IDE = CAN_ID_STD;
|
||||
TxHeader.RTR = CAN_RTR_DATA;
|
||||
TxHeader.StdId = 0x399;
|
||||
|
||||
TxData[0] = 100;
|
||||
TxData[1] = 255;
|
||||
|
||||
int GPIOSTATUS = 0;
|
||||
int oldGPIOSTATUS = 0;
|
||||
TxData[0] = 0x1;
|
||||
|
||||
/* USER CODE END 2 */
|
||||
|
||||
@@ -120,35 +118,27 @@ int main(void)
|
||||
/* USER CODE BEGIN WHILE */
|
||||
while (1)
|
||||
{
|
||||
/* USER CODE END WHILE */
|
||||
GPIOSTATUS = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_10);
|
||||
if(GPIOSTATUS && !oldGPIOSTATUS){
|
||||
HAL_Delay(20);
|
||||
HAL_CAN_AddTxMessage(&hcan, &TxHeader, TxData, &TxMailbox);
|
||||
}
|
||||
oldGPIOSTATUS = GPIOSTATUS;
|
||||
|
||||
if(isValidData){
|
||||
isValidData = 0;
|
||||
for(int i = 0; i < RxData[0]; i++){
|
||||
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
|
||||
HAL_Delay(RxData[1]);
|
||||
}
|
||||
}
|
||||
/* USER CODE BEGIN 3 */
|
||||
//HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
|
||||
}
|
||||
/* USER CODE END 3 */
|
||||
}
|
||||
|
||||
void HAL_CAN_RxFifo1MsgPendingCallback(CAN_HandleTypeDef *hcan){
|
||||
if (HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO1, &RxHeader, RxData) != HAL_OK) {
|
||||
return;
|
||||
};
|
||||
if(RxHeader.DLC == 2){
|
||||
isValidData = 1;
|
||||
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]);
|
||||
}
|
||||
|
||||
void HAL_GPIO_EXTI15_Callback(uint16_t GPIO_Pin)
|
||||
{
|
||||
if(GPIO_Pin == GPIO_PIN_15)
|
||||
{
|
||||
TxData[0] ^= 1;
|
||||
HAL_CAN_AddTxMessage(&hcan, &TxHeader, TxData, &TxMailbox);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief System Clock Configuration
|
||||
* @retval None
|
||||
|
||||
Reference in New Issue
Block a user