Add CAN communication and GPIO control functionality
- Created HAL configuration file for STM32F1xx (stm32f1xx_hal_conf.h). - Added interrupt handler definitions in stm32f1xx_it.h. - Implemented CAN initialization and configuration in can.c. - Configured GPIO pins for output and external interrupts in gpio.c. - Developed main application logic in main.c for toggling an LED and sending CAN messages. - Implemented MSP initialization and de-initialization for CAN in stm32f1xx_hal_msp.c. - Defined interrupt service routines in stm32f1xx_it.c for CAN and EXTI interrupts. - Added README for project-specific libraries and PlatformIO configuration. - Created platformio.ini for project build settings. - Added stm32pio.ini for CubeMX integration with PlatformIO. - Included README for testing directory to guide unit testing setup.
This commit is contained in:
@@ -1,139 +0,0 @@
|
|||||||
#MicroXplorer Configuration settings - do not modify
|
|
||||||
CAD.formats=
|
|
||||||
CAD.pinconfig=
|
|
||||||
CAD.provider=
|
|
||||||
CAN.CalculateBaudRate=533333
|
|
||||||
CAN.CalculateTimeBit=1875
|
|
||||||
CAN.CalculateTimeQuantum=625.0
|
|
||||||
CAN.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,Prescaler
|
|
||||||
CAN.Prescaler=15
|
|
||||||
File.Version=6
|
|
||||||
GPIO.groupedBy=
|
|
||||||
KeepUserPlacement=false
|
|
||||||
Mcu.CPN=STM32F103C8T6
|
|
||||||
Mcu.Family=STM32F1
|
|
||||||
Mcu.IP0=CAN
|
|
||||||
Mcu.IP1=NVIC
|
|
||||||
Mcu.IP2=RCC
|
|
||||||
Mcu.IP3=SYS
|
|
||||||
Mcu.IP4=USB
|
|
||||||
Mcu.IP5=USB_DEVICE
|
|
||||||
Mcu.IPNb=6
|
|
||||||
Mcu.Name=STM32F103C(8-B)Tx
|
|
||||||
Mcu.Package=LQFP48
|
|
||||||
Mcu.Pin0=PC13-TAMPER-RTC
|
|
||||||
Mcu.Pin1=PD0-OSC_IN
|
|
||||||
Mcu.Pin10=VP_SYS_VS_Systick
|
|
||||||
Mcu.Pin11=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS
|
|
||||||
Mcu.Pin2=PD1-OSC_OUT
|
|
||||||
Mcu.Pin3=PA4
|
|
||||||
Mcu.Pin4=PA11
|
|
||||||
Mcu.Pin5=PA12
|
|
||||||
Mcu.Pin6=PA13
|
|
||||||
Mcu.Pin7=PA14
|
|
||||||
Mcu.Pin8=PB8
|
|
||||||
Mcu.Pin9=PB9
|
|
||||||
Mcu.PinsNb=12
|
|
||||||
Mcu.ThirdPartyNb=0
|
|
||||||
Mcu.UserConstants=
|
|
||||||
Mcu.UserName=STM32F103C8Tx
|
|
||||||
MxCube.Version=6.13.0
|
|
||||||
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.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
|
|
||||||
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
|
||||||
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
|
||||||
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.USB_LP_CAN1_RX0_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
|
|
||||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
|
||||||
PA11.Mode=Device
|
|
||||||
PA11.Signal=USB_DM
|
|
||||||
PA12.Mode=Device
|
|
||||||
PA12.Signal=USB_DP
|
|
||||||
PA13.Locked=true
|
|
||||||
PA13.Mode=Serial_Wire
|
|
||||||
PA13.Signal=SYS_JTMS-SWDIO
|
|
||||||
PA14.Locked=true
|
|
||||||
PA14.Mode=Serial_Wire
|
|
||||||
PA14.Signal=SYS_JTCK-SWCLK
|
|
||||||
PA4.Locked=true
|
|
||||||
PA4.Signal=GPIO_Input
|
|
||||||
PB8.Mode=CAN_Activate
|
|
||||||
PB8.Signal=CAN_RX
|
|
||||||
PB9.Mode=CAN_Activate
|
|
||||||
PB9.Signal=CAN_TX
|
|
||||||
PC13-TAMPER-RTC.Locked=true
|
|
||||||
PC13-TAMPER-RTC.Signal=GPIO_Output
|
|
||||||
PD0-OSC_IN.Mode=HSE-External-Oscillator
|
|
||||||
PD0-OSC_IN.Signal=RCC_OSC_IN
|
|
||||||
PD1-OSC_OUT.Mode=HSE-External-Oscillator
|
|
||||||
PD1-OSC_OUT.Signal=RCC_OSC_OUT
|
|
||||||
PinOutPanel.RotationAngle=0
|
|
||||||
ProjectManager.AskForMigrate=true
|
|
||||||
ProjectManager.BackupPrevious=false
|
|
||||||
ProjectManager.CompilerOptimize=6
|
|
||||||
ProjectManager.ComputerToolchain=false
|
|
||||||
ProjectManager.CoupleFile=true
|
|
||||||
ProjectManager.CustomerFirmwarePackage=
|
|
||||||
ProjectManager.DefaultFWLocation=true
|
|
||||||
ProjectManager.DeletePrevious=true
|
|
||||||
ProjectManager.DeviceId=STM32F103C8Tx
|
|
||||||
ProjectManager.FirmwarePackage=STM32Cube FW_F1 V1.8.6
|
|
||||||
ProjectManager.FreePins=false
|
|
||||||
ProjectManager.HalAssertFull=false
|
|
||||||
ProjectManager.HeapSize=0x200
|
|
||||||
ProjectManager.KeepUserCode=true
|
|
||||||
ProjectManager.LastFirmware=true
|
|
||||||
ProjectManager.LibraryCopy=1
|
|
||||||
ProjectManager.MainLocation=Core/Src
|
|
||||||
ProjectManager.NoMain=false
|
|
||||||
ProjectManager.PreviousToolchain=
|
|
||||||
ProjectManager.ProjectBuild=false
|
|
||||||
ProjectManager.ProjectFileName=ModuleCAN.ioc
|
|
||||||
ProjectManager.ProjectName=ModuleCAN
|
|
||||||
ProjectManager.ProjectStructure=
|
|
||||||
ProjectManager.RegisterCallBack=
|
|
||||||
ProjectManager.StackSize=0x400
|
|
||||||
ProjectManager.TargetToolchain=CMake
|
|
||||||
ProjectManager.ToolChainLocation=
|
|
||||||
ProjectManager.UAScriptAfterPath=
|
|
||||||
ProjectManager.UAScriptBeforePath=
|
|
||||||
ProjectManager.UnderRoot=false
|
|
||||||
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,4-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false
|
|
||||||
RCC.ADCFreqValue=24000000
|
|
||||||
RCC.AHBFreq_Value=48000000
|
|
||||||
RCC.APB1CLKDivider=RCC_HCLK_DIV2
|
|
||||||
RCC.APB1Freq_Value=24000000
|
|
||||||
RCC.APB1TimFreq_Value=48000000
|
|
||||||
RCC.APB2Freq_Value=48000000
|
|
||||||
RCC.APB2TimFreq_Value=48000000
|
|
||||||
RCC.FCLKCortexFreq_Value=48000000
|
|
||||||
RCC.FamilyName=M
|
|
||||||
RCC.HCLKFreq_Value=48000000
|
|
||||||
RCC.IPParameters=ADCFreqValue,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,MCOFreq_Value,PLLCLKFreq_Value,PLLMCOFreq_Value,PLLMUL,PLLSourceVirtual,SYSCLKFreq_VALUE,SYSCLKSource,TimSysFreq_Value,USBFreq_Value,VCOOutput2Freq_Value
|
|
||||||
RCC.MCOFreq_Value=48000000
|
|
||||||
RCC.PLLCLKFreq_Value=48000000
|
|
||||||
RCC.PLLMCOFreq_Value=24000000
|
|
||||||
RCC.PLLMUL=RCC_PLL_MUL6
|
|
||||||
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
|
|
||||||
RCC.SYSCLKFreq_VALUE=48000000
|
|
||||||
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
|
|
||||||
RCC.TimSysFreq_Value=48000000
|
|
||||||
RCC.USBFreq_Value=48000000
|
|
||||||
RCC.VCOOutput2Freq_Value=8000000
|
|
||||||
USB_DEVICE.CLASS_NAME_FS=CDC
|
|
||||||
USB_DEVICE.IPParameters=VirtualMode,VirtualModeFS,CLASS_NAME_FS,PRODUCT_STRING_CDC_FS
|
|
||||||
USB_DEVICE.PRODUCT_STRING_CDC_FS=Modular Keyboard - Module VCOM
|
|
||||||
USB_DEVICE.VirtualMode=Cdc
|
|
||||||
USB_DEVICE.VirtualModeFS=Cdc_FS
|
|
||||||
VP_SYS_VS_Systick.Mode=SysTick
|
|
||||||
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
|
|
||||||
VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Mode=CDC_FS
|
|
||||||
VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Signal=USB_DEVICE_VS_USB_DEVICE_CDC_FS
|
|
||||||
board=custom
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
[app]
|
|
||||||
platformio_cmd = platformio
|
|
||||||
cubemx_cmd = /opt/stm32cubemx/STM32CubeMX
|
|
||||||
java_cmd = java
|
|
||||||
|
|
||||||
[project]
|
|
||||||
cubemx_script_content = config load ${ioc_file_absolute_path}
|
|
||||||
generate code ${project_dir_absolute_path}
|
|
||||||
exit
|
|
||||||
platformio_ini_patch_content = [platformio]
|
|
||||||
include_dir = Inc
|
|
||||||
src_dir = Src
|
|
||||||
board =
|
|
||||||
ioc_file = ModuleCAN.ioc
|
|
||||||
cleanup_ignore = ModuleCAN.ioc
|
|
||||||
cleanup_use_git = False
|
|
||||||
inspect_ioc = True
|
|
||||||
last_error = PlatformIO board is not specified, it will be needed on PlatformIO project creation. Type 'pio boards' or go to https://platformio.org to find an appropriate identifier
|
|
||||||
Traceback (most recent call last):
|
|
||||||
File "/home/kymkim/.local/share/pipx/venvs/stm32pio/lib/python3.13/site-packages/stm32pio/cli/app.py", line 195, in main
|
|
||||||
raise Exception(no_board_message)
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user