Dateien nach "termin3/aufgabe2" hochladen
This commit is contained in:
381
termin3/aufgabe2/LaborRechnersysteme3.ioc
Normal file
381
termin3/aufgabe2/LaborRechnersysteme3.ioc
Normal file
@@ -0,0 +1,381 @@
|
|||||||
|
#MicroXplorer Configuration settings - do not modify
|
||||||
|
Mcu.Family=STM32F4
|
||||||
|
PA11.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
SH.GPXTI1.0=GPIO_EXTI1
|
||||||
|
ProjectManager.MainLocation=Core/Src
|
||||||
|
PC3.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
|
PH0-OSC_IN.Locked=true
|
||||||
|
PD12.GPIO_Label=LD4 [Green Led]
|
||||||
|
PA6.Mode=Full_Duplex_Master
|
||||||
|
USB_DEVICE.CLASS_NAME_FS=CDC
|
||||||
|
PC7.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PH0-OSC_IN.Signal=RCC_OSC_IN
|
||||||
|
RCC.CortexFreq_Value=168000000
|
||||||
|
PC10.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
ProjectManager.KeepUserCode=true
|
||||||
|
Mcu.UserName=STM32F407VGTx
|
||||||
|
PB10.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
SPI1.VirtualType=VM_MASTER
|
||||||
|
PB6.GPIO_Mode=GPIO_MODE_AF_OD
|
||||||
|
PB10.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PC12.Locked=true
|
||||||
|
PA10.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PC10.Locked=true
|
||||||
|
PD15.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
RCC.PLLCLKFreq_Value=168000000
|
||||||
|
PC10.Signal=I2S3_CK
|
||||||
|
PC12.Signal=I2S3_SD
|
||||||
|
PA14.GPIO_Label=SWCLK
|
||||||
|
RCC.PLLQCLKFreq_Value=48000000
|
||||||
|
PC7.Locked=true
|
||||||
|
I2S3.IPParameters=AudioFreq-Half_Duplex_Master,ErrorAudioFreq-Half_Duplex_Master,RealAudioFreq-Half_Duplex_Master,RealAudioFreq,ErrorAudioFreq,Instance,VirtualMode,FullDuplexMode
|
||||||
|
PA7.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
|
PA12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_I2C1_Init-I2C1-false-HAL-true,4-MX_I2S3_Init-I2S3-false-HAL-true,5-MX_SPI1_Init-SPI1-false-HAL-true,6-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false
|
||||||
|
PC0.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||||
|
PA9.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PA11.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PC0.GPIO_Label=OTG_FS_PowerSwitchOn
|
||||||
|
PC3.Locked=true
|
||||||
|
PA11.Mode=Device_Only
|
||||||
|
RCC.RTCFreq_Value=32000
|
||||||
|
PH0-OSC_IN.GPIOParameters=GPIO_Label
|
||||||
|
PA6.GPIO_Label=SPI1_MISO [LIS302DL_SDO]
|
||||||
|
PB6.GPIO_Label=Audio_SCL [CS43L22_SCL]
|
||||||
|
USB_DEVICE.VirtualMode-CDC_FS=Cdc
|
||||||
|
PC10.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
PD4.Locked=true
|
||||||
|
PA11.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PC15-OSC32_OUT.GPIO_Label=PC15-OSC32_OUT
|
||||||
|
PinOutPanel.RotationAngle=0
|
||||||
|
PC3.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
|
||||||
|
ProjectManager.StackSize=0x400
|
||||||
|
PA6.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
|
SPI1.Mode-Full_Duplex_Master=SPI_MODE_MASTER
|
||||||
|
PD13.Signal=GPIO_Output
|
||||||
|
Mcu.IP4=SPI1
|
||||||
|
RCC.FCLKCortexFreq_Value=168000000
|
||||||
|
Mcu.IP5=SYS
|
||||||
|
PD13.Locked=true
|
||||||
|
Mcu.IP2=NVIC
|
||||||
|
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:true\:false
|
||||||
|
Mcu.IP3=RCC
|
||||||
|
PD14.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
Mcu.IP0=I2C1
|
||||||
|
PA12.Locked=true
|
||||||
|
Mcu.IP1=I2S3
|
||||||
|
PA12.Signal=USB_OTG_FS_DP
|
||||||
|
Mcu.UserConstants=
|
||||||
|
PD15.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
|
||||||
|
PA4.Mode=Half_Duplex_Master
|
||||||
|
Mcu.ThirdPartyNb=0
|
||||||
|
SPI1.Direction=SPI_DIRECTION_2LINES
|
||||||
|
I2S3.AudioFreq-Half_Duplex_Master=I2S_AUDIOFREQ_96K
|
||||||
|
RCC.HCLKFreq_Value=168000000
|
||||||
|
Mcu.IPNb=8
|
||||||
|
RCC.I2SClocksFreq_Value=96000000
|
||||||
|
ProjectManager.PreviousToolchain=
|
||||||
|
PD4.Signal=GPIO_Output
|
||||||
|
RCC.APB2TimFreq_Value=168000000
|
||||||
|
PB6.Signal=I2C1_SCL
|
||||||
|
RCC.VcooutputI2S=96000000
|
||||||
|
PC7.Signal=I2S3_MCK
|
||||||
|
PB6.Mode=I2C
|
||||||
|
PC3.Signal=I2S2_SD
|
||||||
|
Mcu.Pin6=PC3
|
||||||
|
Mcu.Pin7=PA0-WKUP
|
||||||
|
Mcu.Pin8=PA4
|
||||||
|
Mcu.Pin9=PA5
|
||||||
|
PE1.Signal=GPXTI1
|
||||||
|
RCC.AHBFreq_Value=168000000
|
||||||
|
PH0-OSC_IN.Mode=HSE-External-Oscillator
|
||||||
|
PH0-OSC_IN.GPIO_Label=PH0-OSC_IN
|
||||||
|
Mcu.Pin0=PE3
|
||||||
|
Mcu.Pin1=PC14-OSC32_IN
|
||||||
|
Mcu.Pin2=PC15-OSC32_OUT
|
||||||
|
PA9.GPIO_Mode=GPIO_MODE_INPUT
|
||||||
|
Mcu.Pin3=PH0-OSC_IN
|
||||||
|
Mcu.Pin4=PH1-OSC_OUT
|
||||||
|
PA0-WKUP.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
|
||||||
|
Mcu.Pin5=PC0
|
||||||
|
ProjectManager.ProjectBuild=false
|
||||||
|
RCC.HSE_VALUE=8000000
|
||||||
|
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false
|
||||||
|
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:true\:false
|
||||||
|
PA4.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PB2.Signal=GPIO_Input
|
||||||
|
PA4.Locked=true
|
||||||
|
NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:true\:true
|
||||||
|
PA4.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.26.2
|
||||||
|
MxDb.Version=DB.6.0.21
|
||||||
|
I2S3.ErrorAudioFreq=-2.34 %
|
||||||
|
PA6.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
ProjectManager.BackupPrevious=false
|
||||||
|
PC14-OSC32_IN.Mode=LSE-External-Oscillator
|
||||||
|
RCC.VCOInputFreq_Value=1000000
|
||||||
|
PA14.Mode=Serial_Wire
|
||||||
|
USB_DEVICE.MANUFACTURER_STRING-CDC_FS=DHBW Horb
|
||||||
|
PA5.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
I2S3.ErrorAudioFreq-Half_Duplex_Master=0.8 %
|
||||||
|
File.Version=6
|
||||||
|
PA10.GPIO_Label=OTG_FS_ID
|
||||||
|
PC7.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
|
PE3.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
|
||||||
|
PH1-OSC_OUT.Locked=true
|
||||||
|
PD5.GPIO_Mode=GPIO_MODE_INPUT
|
||||||
|
PB3.GPIOParameters=GPIO_Label
|
||||||
|
PE3.Locked=true
|
||||||
|
PD14.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PE1.Locked=true
|
||||||
|
PB6.Locked=true
|
||||||
|
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:true\:false
|
||||||
|
PB6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
ProjectManager.HalAssertFull=false
|
||||||
|
PB2.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PC14-OSC32_IN.GPIOParameters=GPIO_Label
|
||||||
|
SPI1.CalculateBaudRate-Full_Duplex_Master=42.0 MBits/s
|
||||||
|
ProjectManager.ProjectName=LaborRechnersysteme3
|
||||||
|
PA13.GPIOParameters=GPIO_Label
|
||||||
|
PH1-OSC_OUT.Mode=HSE-External-Oscillator
|
||||||
|
RCC.MCO2PinFreq_Value=168000000
|
||||||
|
PD13.GPIO_Label=LD3 [Orange Led]
|
||||||
|
Mcu.Package=LQFP100
|
||||||
|
PB9.Signal=I2C1_SDA
|
||||||
|
PA6.Signal=SPI1_MISO
|
||||||
|
PA7.Locked=true
|
||||||
|
PA5.Locked=true
|
||||||
|
PD12.Signal=GPIO_Output
|
||||||
|
PA14.Locked=true
|
||||||
|
PD5.GPIO_Label=OTG_FS_OverCurrent
|
||||||
|
PD5.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
NVIC.OTG_FS_IRQn=true\:0\:0\:false\:false\:true\:true\:true
|
||||||
|
ProjectManager.ToolChainLocation=
|
||||||
|
PD15.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PD14.Locked=true
|
||||||
|
RCC.LSI_VALUE=32000
|
||||||
|
SH.GPXTI0.0=GPIO_EXTI0
|
||||||
|
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
|
||||||
|
PA10.Signal=USB_OTG_FS_ID
|
||||||
|
PB9.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
USB_OTG_FS.VirtualMode=Device_Only
|
||||||
|
VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Signal=USB_DEVICE_VS_USB_DEVICE_CDC_FS
|
||||||
|
PA5.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PA10.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
RCC.APB2CLKDivider=RCC_HCLK_DIV2
|
||||||
|
PB9.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
RCC.APB1TimFreq_Value=84000000
|
||||||
|
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false
|
||||||
|
PC14-OSC32_IN.GPIO_Label=PC14-OSC32_IN
|
||||||
|
USB_OTG_FS.IPParameters=VirtualMode
|
||||||
|
PB10.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PC12.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PC15-OSC32_OUT.GPIOParameters=GPIO_Label
|
||||||
|
PA6.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
PC0.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PA12.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PD5.Locked=true
|
||||||
|
PA4.GPIO_Label=I2S3_WS [CS43L22_LRCK]
|
||||||
|
PD15.Signal=GPIO_Output
|
||||||
|
ProjectManager.CustomerFirmwarePackage=
|
||||||
|
PC0.PinState=GPIO_PIN_SET
|
||||||
|
PC14-OSC32_IN.Locked=true
|
||||||
|
PA12.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
PB3.Locked=true
|
||||||
|
PA5.Mode=Full_Duplex_Master
|
||||||
|
PB3.GPIO_Label=SWO
|
||||||
|
PA6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PC15-OSC32_OUT.Mode=LSE-External-Oscillator
|
||||||
|
I2S3.FullDuplexMode=I2S_FULLDUPLEXMODE_DISABLE
|
||||||
|
ProjectManager.ProjectFileName=LaborRechnersysteme3.ioc
|
||||||
|
PD12.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
PD15.GPIO_Label=LD6 [Blue Led]
|
||||||
|
PA7.Mode=Full_Duplex_Master
|
||||||
|
PB9.GPIO_Label=Audio_SDA [CS43L22_SDA]
|
||||||
|
PC10.GPIO_Label=I2S3_SCK [CS43L22_SCLK]
|
||||||
|
Mcu.PinsNb=35
|
||||||
|
ProjectManager.NoMain=false
|
||||||
|
SPI1.IPParameters=CalculateBaudRate-Full_Duplex_Master,BaudRatePrescaler-Full_Duplex_Master,Mode-Full_Duplex_Master,Mode,VirtualType,Direction
|
||||||
|
USB_DEVICE.VirtualModeFS=Cdc_FS
|
||||||
|
PA9.GPIO_Label=VBUS_FS
|
||||||
|
PB6.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PC10.Mode=Half_Duplex_Master
|
||||||
|
PD13.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
|
||||||
|
SH.GPXTI0.ConfNb=1
|
||||||
|
PA11.GPIO_Label=OTG_FS_DM
|
||||||
|
ProjectManager.DefaultFWLocation=true
|
||||||
|
PE1.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PD5.Signal=GPIO_Input
|
||||||
|
ProjectManager.DeletePrevious=true
|
||||||
|
PC0.Signal=GPIO_Output
|
||||||
|
PE1.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
|
||||||
|
RCC.APB1CLKDivider=RCC_HCLK_DIV4
|
||||||
|
PC14-OSC32_IN.Signal=RCC_OSC32_IN
|
||||||
|
PB10.Locked=true
|
||||||
|
boardIOC=true
|
||||||
|
USB_DEVICE.IPParameters=VirtualMode-CDC_FS,VirtualModeFS,CLASS_NAME_FS,MANUFACTURER_STRING-CDC_FS
|
||||||
|
PA9.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PA0-WKUP.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING
|
||||||
|
PA12.GPIO_Label=OTG_FS_DP
|
||||||
|
RCC.FamilyName=M
|
||||||
|
PA0-WKUP.GPIO_Label=B1 [Blue PushButton]
|
||||||
|
PA0-WKUP.Signal=GPXTI0
|
||||||
|
PA0-WKUP.Locked=true
|
||||||
|
PA10.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
|
PB9.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PD12.Locked=true
|
||||||
|
PC3.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PC12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PA13.Signal=SYS_JTMS-SWDIO
|
||||||
|
PC10.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
|
PD4.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PA11.Locked=true
|
||||||
|
PA9.Mode=Activate_VBUS
|
||||||
|
PC0.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
PB10.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
|
I2S3.RealAudioFreq-Half_Duplex_Master=96.774 KHz
|
||||||
|
PC15-OSC32_OUT.Locked=true
|
||||||
|
PD12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
|
||||||
|
ProjectManager.TargetToolchain=STM32CubeIDE
|
||||||
|
PB10.GPIO_Label=CLK_IN [MP45DT02_CLK]
|
||||||
|
VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Mode=CDC_FS
|
||||||
|
PB9.Mode=I2C
|
||||||
|
PB2.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PA9.Signal=USB_OTG_FS_VBUS
|
||||||
|
PB9.Locked=true
|
||||||
|
I2S3.VirtualMode=I2S_MODE_MASTER
|
||||||
|
ProjectManager.RegisterCallBack=
|
||||||
|
PC7.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PC15-OSC32_OUT.Signal=RCC_OSC32_OUT
|
||||||
|
PA7.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PB10.Signal=I2S2_CK
|
||||||
|
RCC.VCOI2SOutputFreq_Value=192000000
|
||||||
|
PA5.Signal=SPI1_SCK
|
||||||
|
PC12.Mode=Half_Duplex_Master
|
||||||
|
board=STM32F407G-DISC1
|
||||||
|
PD13.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
PC7.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
RCC.VCOOutputFreq_Value=336000000
|
||||||
|
PE1.GPIO_Label=MEMS_INT2 [LIS302DL_INT2]
|
||||||
|
ProjectManager.LastFirmware=true
|
||||||
|
PA7.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
PB9.GPIO_Mode=GPIO_MODE_AF_OD
|
||||||
|
PA12.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
|
PA4.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
|
RCC.APB2Freq_Value=84000000
|
||||||
|
PB2.GPIO_Mode=GPIO_MODE_INPUT
|
||||||
|
MxCube.Version=6.2.1
|
||||||
|
SPI1.Mode=SPI_MODE_MASTER
|
||||||
|
PD4.GPIO_Label=Audio_RST [CS43L22_RESET]
|
||||||
|
PD4.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
Mcu.Pin30=PB6
|
||||||
|
PA10.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PD4.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
|
||||||
|
VP_SYS_VS_Systick.Mode=SysTick
|
||||||
|
RCC.EthernetFreq_Value=168000000
|
||||||
|
Mcu.Pin33=VP_SYS_VS_Systick
|
||||||
|
PE3.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PH1-OSC_OUT.Signal=RCC_OSC_OUT
|
||||||
|
Mcu.Pin34=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS
|
||||||
|
Mcu.Pin31=PB9
|
||||||
|
PD13.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
Mcu.Pin32=PE1
|
||||||
|
PA9.Locked=true
|
||||||
|
PD5.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:true\:false
|
||||||
|
PD14.GPIO_Label=LD5 [Red Led]
|
||||||
|
PA4.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PC10.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PH1-OSC_OUT.GPIO_Label=PH1-OSC_OUT
|
||||||
|
PA13.Mode=Serial_Wire
|
||||||
|
ProjectManager.FreePins=false
|
||||||
|
RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S
|
||||||
|
ProjectManager.AskForMigrate=true
|
||||||
|
Mcu.Name=STM32F407V(E-G)Tx
|
||||||
|
Mcu.Pin26=PC12
|
||||||
|
Mcu.Pin27=PD4
|
||||||
|
RCC.RTCHSEDivFreq_Value=4000000
|
||||||
|
PA13.GPIO_Label=SWDIO
|
||||||
|
Mcu.Pin24=PA14
|
||||||
|
ProjectManager.UnderRoot=true
|
||||||
|
Mcu.Pin25=PC10
|
||||||
|
PB2.Locked=true
|
||||||
|
PC7.GPIO_Label=I2S3_MCK [CS43L22_MCLK]
|
||||||
|
PD14.Signal=GPIO_Output
|
||||||
|
Mcu.Pin28=PD5
|
||||||
|
Mcu.IP6=USB_DEVICE
|
||||||
|
Mcu.Pin29=PB3
|
||||||
|
Mcu.IP7=USB_OTG_FS
|
||||||
|
ProjectManager.CoupleFile=false
|
||||||
|
RCC.48MHZClocksFreq_Value=48000000
|
||||||
|
PB3.Signal=SYS_JTDO-SWO
|
||||||
|
NVIC.EXTI0_IRQn=true\:0\:0\:false\:false\:true\:true\:true
|
||||||
|
PA4.Signal=I2S3_WS
|
||||||
|
PD14.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
|
||||||
|
RCC.SYSCLKFreq_VALUE=168000000
|
||||||
|
Mcu.Pin22=PA12
|
||||||
|
PC12.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
|
Mcu.Pin23=PA13
|
||||||
|
PA7.GPIO_Label=SPI1_MOSI [LIS302DL_SDA/SDI/SDO]
|
||||||
|
Mcu.Pin20=PA10
|
||||||
|
Mcu.Pin21=PA11
|
||||||
|
PA12.Mode=Device_Only
|
||||||
|
PA5.GPIO_Label=SPI1_SCK [LIS302DL_SCL/SPC]
|
||||||
|
PA10.Locked=true
|
||||||
|
NVIC.ForceEnableDMAVector=true
|
||||||
|
KeepUserPlacement=false
|
||||||
|
PE3.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
PA14.GPIOParameters=GPIO_Label
|
||||||
|
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:true\:false
|
||||||
|
PH1-OSC_OUT.GPIOParameters=GPIO_Label
|
||||||
|
PA13.Locked=true
|
||||||
|
PC12.GPIO_Label=I2S3_SD [CS43L22_SDIN]
|
||||||
|
ProjectManager.CompilerOptimize=6
|
||||||
|
PD15.Locked=true
|
||||||
|
PA11.Signal=USB_OTG_FS_DM
|
||||||
|
PA14.Signal=SYS_JTCK-SWCLK
|
||||||
|
PB2.GPIO_Label=BOOT1
|
||||||
|
ProjectManager.HeapSize=0x200
|
||||||
|
Mcu.Pin15=PD13
|
||||||
|
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false
|
||||||
|
Mcu.Pin16=PD14
|
||||||
|
Mcu.Pin13=PB10
|
||||||
|
Mcu.Pin14=PD12
|
||||||
|
Mcu.Pin19=PA9
|
||||||
|
ProjectManager.ComputerToolchain=false
|
||||||
|
Mcu.Pin17=PD15
|
||||||
|
RCC.HSI_VALUE=16000000
|
||||||
|
Mcu.Pin18=PC7
|
||||||
|
PA5.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
RCC.PLLQ=7
|
||||||
|
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_0
|
||||||
|
Mcu.Pin11=PA7
|
||||||
|
I2S3.RealAudioFreq=93.75 KHz
|
||||||
|
Mcu.Pin12=PB2
|
||||||
|
RCC.PLLM=8
|
||||||
|
RCC.PLLN=336
|
||||||
|
Mcu.Pin10=PA6
|
||||||
|
PE3.Signal=GPIO_Output
|
||||||
|
PE3.GPIO_Label=CS_I2C/SPI [LIS302DL_CS_I2C/SPI]
|
||||||
|
PC3.GPIO_Label=PDM_OUT [MP45DT02_DOUT]
|
||||||
|
PA0-WKUP.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
I2S3.Instance=SPI$Index
|
||||||
|
PC7.Mode=Master_Clock_Activated
|
||||||
|
PA11.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
|
PB6.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
SH.GPXTI1.ConfNb=1
|
||||||
|
RCC.APB1Freq_Value=42000000
|
||||||
|
PA5.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
|
PC12.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
|
SPI1.BaudRatePrescaler-Full_Duplex_Master=SPI_BAUDRATEPRESCALER_2
|
||||||
|
PA7.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
|
PC0.Locked=true
|
||||||
|
ProjectManager.DeviceId=STM32F407VGTx
|
||||||
|
ProjectManager.LibraryCopy=1
|
||||||
|
PC3.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PD12.GPIO_PuPd=GPIO_NOPULL
|
||||||
|
PE1.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
|
||||||
|
PA7.Signal=SPI1_MOSI
|
||||||
|
PA6.Locked=true
|
||||||
|
isbadioc=false
|
||||||
407
termin3/aufgabe2/main.c
Normal file
407
termin3/aufgabe2/main.c
Normal file
@@ -0,0 +1,407 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file : main.c
|
||||||
|
* @brief : Main program body
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) 2024 STMicroelectronics.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* This software component is licensed by ST under Ultimate Liberty license
|
||||||
|
* SLA0044, the "License"; You may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at:
|
||||||
|
* www.st.com/SLA0044
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "main.h"
|
||||||
|
#include "usb_device.h"
|
||||||
|
|
||||||
|
/* Private includes ----------------------------------------------------------*/
|
||||||
|
/* USER CODE BEGIN Includes */
|
||||||
|
#include "usbd_cdc_if.h"
|
||||||
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
|
/* Private typedef -----------------------------------------------------------*/
|
||||||
|
/* USER CODE BEGIN PTD */
|
||||||
|
|
||||||
|
/* USER CODE END PTD */
|
||||||
|
|
||||||
|
/* Private define ------------------------------------------------------------*/
|
||||||
|
/* USER CODE BEGIN PD */
|
||||||
|
/* USER CODE END PD */
|
||||||
|
|
||||||
|
/* Private macro -------------------------------------------------------------*/
|
||||||
|
/* USER CODE BEGIN PM */
|
||||||
|
|
||||||
|
/* USER CODE END PM */
|
||||||
|
|
||||||
|
/* Private variables ---------------------------------------------------------*/
|
||||||
|
I2C_HandleTypeDef hi2c1;
|
||||||
|
|
||||||
|
I2S_HandleTypeDef hi2s3;
|
||||||
|
|
||||||
|
SPI_HandleTypeDef hspi1;
|
||||||
|
|
||||||
|
/* USER CODE BEGIN PV */
|
||||||
|
|
||||||
|
/* USER CODE END PV */
|
||||||
|
|
||||||
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
|
void SystemClock_Config(void);
|
||||||
|
static void MX_GPIO_Init(void);
|
||||||
|
static void MX_I2C1_Init(void);
|
||||||
|
static void MX_I2S3_Init(void);
|
||||||
|
static void MX_SPI1_Init(void);
|
||||||
|
/* USER CODE BEGIN PFP */
|
||||||
|
|
||||||
|
/* USER CODE END PFP */
|
||||||
|
|
||||||
|
/* Private user code ---------------------------------------------------------*/
|
||||||
|
/* USER CODE BEGIN 0 */
|
||||||
|
|
||||||
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The application entry point.
|
||||||
|
* @retval int
|
||||||
|
*/
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
|
/* USER CODE END 1 */
|
||||||
|
|
||||||
|
/* MCU Configuration--------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
|
||||||
|
HAL_Init();
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Init */
|
||||||
|
|
||||||
|
/* USER CODE END Init */
|
||||||
|
|
||||||
|
/* Configure the system clock */
|
||||||
|
SystemClock_Config();
|
||||||
|
|
||||||
|
/* USER CODE BEGIN SysInit */
|
||||||
|
|
||||||
|
/* USER CODE END SysInit */
|
||||||
|
|
||||||
|
/* Initialize all configured peripherals */
|
||||||
|
MX_GPIO_Init();
|
||||||
|
MX_I2C1_Init();
|
||||||
|
MX_I2S3_Init();
|
||||||
|
MX_SPI1_Init();
|
||||||
|
MX_USB_DEVICE_Init();
|
||||||
|
/* USER CODE BEGIN 2 */
|
||||||
|
|
||||||
|
/* USER CODE END 2 */
|
||||||
|
|
||||||
|
/* Infinite loop */
|
||||||
|
/* USER CODE BEGIN WHILE */
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
// Verzögerungsschleife
|
||||||
|
for (volatile uint32_t i = 0; i < 10000000; i++);
|
||||||
|
/* USER CODE END WHILE */
|
||||||
|
|
||||||
|
/* USER CODE BEGIN 3 */
|
||||||
|
}
|
||||||
|
/* USER CODE END 3 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief System Clock Configuration
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void SystemClock_Config(void)
|
||||||
|
{
|
||||||
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
|
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
|
||||||
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
|
|
||||||
|
/** Configure the main internal regulator output voltage
|
||||||
|
*/
|
||||||
|
__HAL_RCC_PWR_CLK_ENABLE();
|
||||||
|
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
|
||||||
|
/** Initializes the RCC Oscillators according to the specified parameters
|
||||||
|
* in the RCC_OscInitTypeDef structure.
|
||||||
|
*/
|
||||||
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
|
||||||
|
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
|
||||||
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
|
||||||
|
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
|
||||||
|
RCC_OscInitStruct.PLL.PLLM = 8;
|
||||||
|
RCC_OscInitStruct.PLL.PLLN = 336;
|
||||||
|
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
|
||||||
|
RCC_OscInitStruct.PLL.PLLQ = 7;
|
||||||
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
/** Initializes the CPU, AHB and APB buses clocks
|
||||||
|
*/
|
||||||
|
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|
||||||
|
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
|
||||||
|
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
|
||||||
|
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
|
||||||
|
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
|
||||||
|
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
|
||||||
|
|
||||||
|
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2S;
|
||||||
|
PeriphClkInitStruct.PLLI2S.PLLI2SN = 192;
|
||||||
|
PeriphClkInitStruct.PLLI2S.PLLI2SR = 2;
|
||||||
|
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief I2C1 Initialization Function
|
||||||
|
* @param None
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
static void MX_I2C1_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* USER CODE BEGIN I2C1_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE END I2C1_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE BEGIN I2C1_Init 1 */
|
||||||
|
|
||||||
|
/* USER CODE END I2C1_Init 1 */
|
||||||
|
hi2c1.Instance = I2C1;
|
||||||
|
hi2c1.Init.ClockSpeed = 100000;
|
||||||
|
hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
|
||||||
|
hi2c1.Init.OwnAddress1 = 0;
|
||||||
|
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
|
||||||
|
hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
|
||||||
|
hi2c1.Init.OwnAddress2 = 0;
|
||||||
|
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
|
||||||
|
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
|
||||||
|
if (HAL_I2C_Init(&hi2c1) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
/* USER CODE BEGIN I2C1_Init 2 */
|
||||||
|
|
||||||
|
/* USER CODE END I2C1_Init 2 */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief I2S3 Initialization Function
|
||||||
|
* @param None
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
static void MX_I2S3_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* USER CODE BEGIN I2S3_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE END I2S3_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE BEGIN I2S3_Init 1 */
|
||||||
|
|
||||||
|
/* USER CODE END I2S3_Init 1 */
|
||||||
|
hi2s3.Instance = SPI3;
|
||||||
|
hi2s3.Init.Mode = I2S_MODE_MASTER_TX;
|
||||||
|
hi2s3.Init.Standard = I2S_STANDARD_PHILIPS;
|
||||||
|
hi2s3.Init.DataFormat = I2S_DATAFORMAT_16B;
|
||||||
|
hi2s3.Init.MCLKOutput = I2S_MCLKOUTPUT_ENABLE;
|
||||||
|
hi2s3.Init.AudioFreq = I2S_AUDIOFREQ_96K;
|
||||||
|
hi2s3.Init.CPOL = I2S_CPOL_LOW;
|
||||||
|
hi2s3.Init.ClockSource = I2S_CLOCK_PLL;
|
||||||
|
hi2s3.Init.FullDuplexMode = I2S_FULLDUPLEXMODE_DISABLE;
|
||||||
|
if (HAL_I2S_Init(&hi2s3) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
/* USER CODE BEGIN I2S3_Init 2 */
|
||||||
|
|
||||||
|
/* USER CODE END I2S3_Init 2 */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SPI1 Initialization Function
|
||||||
|
* @param None
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
static void MX_SPI1_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* USER CODE BEGIN SPI1_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE END SPI1_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE BEGIN SPI1_Init 1 */
|
||||||
|
|
||||||
|
/* USER CODE END SPI1_Init 1 */
|
||||||
|
/* SPI1 parameter configuration*/
|
||||||
|
hspi1.Instance = SPI1;
|
||||||
|
hspi1.Init.Mode = SPI_MODE_MASTER;
|
||||||
|
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
|
||||||
|
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
|
||||||
|
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
|
||||||
|
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
|
||||||
|
hspi1.Init.NSS = SPI_NSS_SOFT;
|
||||||
|
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
|
||||||
|
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
|
||||||
|
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
|
||||||
|
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
||||||
|
hspi1.Init.CRCPolynomial = 10;
|
||||||
|
if (HAL_SPI_Init(&hspi1) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
/* USER CODE BEGIN SPI1_Init 2 */
|
||||||
|
|
||||||
|
/* USER CODE END SPI1_Init 2 */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GPIO Initialization Function
|
||||||
|
* @param None
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
static void MX_GPIO_Init(void)
|
||||||
|
{
|
||||||
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
|
|
||||||
|
/* GPIO Ports Clock Enable */
|
||||||
|
__HAL_RCC_GPIOE_CLK_ENABLE();
|
||||||
|
__HAL_RCC_GPIOC_CLK_ENABLE();
|
||||||
|
__HAL_RCC_GPIOH_CLK_ENABLE();
|
||||||
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||||
|
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||||
|
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||||
|
|
||||||
|
/*Configure GPIO pin Output Level */
|
||||||
|
HAL_GPIO_WritePin(CS_I2C_SPI_GPIO_Port, CS_I2C_SPI_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
|
/*Configure GPIO pin Output Level */
|
||||||
|
HAL_GPIO_WritePin(OTG_FS_PowerSwitchOn_GPIO_Port, OTG_FS_PowerSwitchOn_Pin, GPIO_PIN_SET);
|
||||||
|
|
||||||
|
/*Configure GPIO pin Output Level */
|
||||||
|
HAL_GPIO_WritePin(GPIOD, LD4_Pin|LD3_Pin|LD5_Pin|LD6_Pin
|
||||||
|
|Audio_RST_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
|
/*Configure GPIO pin : CS_I2C_SPI_Pin */
|
||||||
|
GPIO_InitStruct.Pin = CS_I2C_SPI_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
HAL_GPIO_Init(CS_I2C_SPI_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/*Configure GPIO pin : OTG_FS_PowerSwitchOn_Pin */
|
||||||
|
GPIO_InitStruct.Pin = OTG_FS_PowerSwitchOn_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
HAL_GPIO_Init(OTG_FS_PowerSwitchOn_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/*Configure GPIO pin : PDM_OUT_Pin */
|
||||||
|
GPIO_InitStruct.Pin = PDM_OUT_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
|
||||||
|
HAL_GPIO_Init(PDM_OUT_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/*Configure GPIO pin : B1_Pin */
|
||||||
|
GPIO_InitStruct.Pin = B1_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/*Configure GPIO pin : BOOT1_Pin */
|
||||||
|
GPIO_InitStruct.Pin = BOOT1_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/*Configure GPIO pin : CLK_IN_Pin */
|
||||||
|
GPIO_InitStruct.Pin = CLK_IN_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
|
||||||
|
HAL_GPIO_Init(CLK_IN_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/*Configure GPIO pins : LD4_Pin LD3_Pin LD5_Pin LD6_Pin
|
||||||
|
Audio_RST_Pin */
|
||||||
|
GPIO_InitStruct.Pin = LD4_Pin|LD3_Pin|LD5_Pin|LD6_Pin
|
||||||
|
|Audio_RST_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/*Configure GPIO pin : OTG_FS_OverCurrent_Pin */
|
||||||
|
GPIO_InitStruct.Pin = OTG_FS_OverCurrent_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
HAL_GPIO_Init(OTG_FS_OverCurrent_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/*Configure GPIO pin : MEMS_INT2_Pin */
|
||||||
|
GPIO_InitStruct.Pin = MEMS_INT2_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
HAL_GPIO_Init(MEMS_INT2_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* EXTI interrupt init*/
|
||||||
|
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* USER CODE BEGIN 4 */
|
||||||
|
|
||||||
|
/* USER CODE END 4 */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function is executed in case of error occurrence.
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void Error_Handler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN Error_Handler_Debug */
|
||||||
|
/* User can add his own implementation to report the HAL error return state */
|
||||||
|
__disable_irq();
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
/* USER CODE END Error_Handler_Debug */
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef USE_FULL_ASSERT
|
||||||
|
/**
|
||||||
|
* @brief Reports the name of the source file and the source line number
|
||||||
|
* where the assert_param error has occurred.
|
||||||
|
* @param file: pointer to the source file name
|
||||||
|
* @param line: assert_param error line source number
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void assert_failed(uint8_t *file, uint32_t line)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN 6 */
|
||||||
|
/* User can add his own implementation to report the file name and line number,
|
||||||
|
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
|
||||||
|
/* USER CODE END 6 */
|
||||||
|
}
|
||||||
|
#endif /* USE_FULL_ASSERT */
|
||||||
|
|
||||||
|
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||||
233
termin3/aufgabe2/stm32f4xx_it.c
Normal file
233
termin3/aufgabe2/stm32f4xx_it.c
Normal file
@@ -0,0 +1,233 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file stm32f4xx_it.c
|
||||||
|
* @brief Interrupt Service Routines.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) 2024 STMicroelectronics.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* This software component is licensed by ST under Ultimate Liberty license
|
||||||
|
* SLA0044, the "License"; You may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at:
|
||||||
|
* www.st.com/SLA0044
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "main.h"
|
||||||
|
#include "stm32f4xx_it.h"
|
||||||
|
/* Private includes ----------------------------------------------------------*/
|
||||||
|
/* USER CODE BEGIN Includes */
|
||||||
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
|
/* Private typedef -----------------------------------------------------------*/
|
||||||
|
/* USER CODE BEGIN TD */
|
||||||
|
|
||||||
|
/* USER CODE END TD */
|
||||||
|
|
||||||
|
/* Private define ------------------------------------------------------------*/
|
||||||
|
/* USER CODE BEGIN PD */
|
||||||
|
|
||||||
|
/* USER CODE END PD */
|
||||||
|
|
||||||
|
/* Private macro -------------------------------------------------------------*/
|
||||||
|
/* USER CODE BEGIN PM */
|
||||||
|
|
||||||
|
/* USER CODE END PM */
|
||||||
|
|
||||||
|
/* Private variables ---------------------------------------------------------*/
|
||||||
|
/* USER CODE BEGIN PV */
|
||||||
|
|
||||||
|
/* USER CODE END PV */
|
||||||
|
|
||||||
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
|
/* USER CODE BEGIN PFP */
|
||||||
|
|
||||||
|
/* USER CODE END PFP */
|
||||||
|
|
||||||
|
/* Private user code ---------------------------------------------------------*/
|
||||||
|
/* USER CODE BEGIN 0 */
|
||||||
|
|
||||||
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
|
/* External variables --------------------------------------------------------*/
|
||||||
|
extern PCD_HandleTypeDef hpcd_USB_OTG_FS;
|
||||||
|
/* USER CODE BEGIN EV */
|
||||||
|
|
||||||
|
/* USER CODE END EV */
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* Cortex-M4 Processor Interruption and Exception Handlers */
|
||||||
|
/******************************************************************************/
|
||||||
|
/**
|
||||||
|
* @brief This function handles Non maskable interrupt.
|
||||||
|
*/
|
||||||
|
void NMI_Handler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END NonMaskableInt_IRQn 0 */
|
||||||
|
/* USER CODE BEGIN NonMaskableInt_IRQn 1 */
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
/* USER CODE END NonMaskableInt_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles Hard fault interrupt.
|
||||||
|
*/
|
||||||
|
void HardFault_Handler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN HardFault_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END HardFault_IRQn 0 */
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN W1_HardFault_IRQn 0 */
|
||||||
|
/* USER CODE END W1_HardFault_IRQn 0 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles Memory management fault.
|
||||||
|
*/
|
||||||
|
void MemManage_Handler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END MemoryManagement_IRQn 0 */
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
|
||||||
|
/* USER CODE END W1_MemoryManagement_IRQn 0 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles Pre-fetch fault, memory access fault.
|
||||||
|
*/
|
||||||
|
void BusFault_Handler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN BusFault_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END BusFault_IRQn 0 */
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN W1_BusFault_IRQn 0 */
|
||||||
|
/* USER CODE END W1_BusFault_IRQn 0 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles Undefined instruction or illegal state.
|
||||||
|
*/
|
||||||
|
void UsageFault_Handler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN UsageFault_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END UsageFault_IRQn 0 */
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN W1_UsageFault_IRQn 0 */
|
||||||
|
/* USER CODE END W1_UsageFault_IRQn 0 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles System service call via SWI instruction.
|
||||||
|
*/
|
||||||
|
void SVC_Handler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN SVCall_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END SVCall_IRQn 0 */
|
||||||
|
/* USER CODE BEGIN SVCall_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END SVCall_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles Debug monitor.
|
||||||
|
*/
|
||||||
|
void DebugMon_Handler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN DebugMonitor_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END DebugMonitor_IRQn 0 */
|
||||||
|
/* USER CODE BEGIN DebugMonitor_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END DebugMonitor_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles Pendable request for system service.
|
||||||
|
*/
|
||||||
|
void PendSV_Handler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN PendSV_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END PendSV_IRQn 0 */
|
||||||
|
/* USER CODE BEGIN PendSV_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END PendSV_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles System tick timer.
|
||||||
|
*/
|
||||||
|
void SysTick_Handler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN SysTick_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END SysTick_IRQn 0 */
|
||||||
|
HAL_IncTick();
|
||||||
|
/* USER CODE BEGIN SysTick_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END SysTick_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* STM32F4xx Peripheral Interrupt Handlers */
|
||||||
|
/* Add here the Interrupt Handlers for the used peripherals. */
|
||||||
|
/* For the available peripheral interrupt handler names, */
|
||||||
|
/* please refer to the startup file (startup_stm32f4xx.s). */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles EXTI line0 interrupt.
|
||||||
|
*/
|
||||||
|
void EXTI0_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN EXTI0_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END EXTI0_IRQn 0 */
|
||||||
|
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
|
||||||
|
/* USER CODE BEGIN EXTI0_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END EXTI0_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles USB On The Go FS global interrupt.
|
||||||
|
*/
|
||||||
|
void OTG_FS_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN OTG_FS_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END OTG_FS_IRQn 0 */
|
||||||
|
HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS);
|
||||||
|
/* USER CODE BEGIN OTG_FS_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END OTG_FS_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
|
/* USER CODE END 1 */
|
||||||
|
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||||
335
termin3/aufgabe2/usbd_cdc_if.c
Normal file
335
termin3/aufgabe2/usbd_cdc_if.c
Normal file
@@ -0,0 +1,335 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file : usbd_cdc_if.c
|
||||||
|
* @version : v1.0_Cube
|
||||||
|
* @brief : Usb device for Virtual Com Port.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) 2024 STMicroelectronics.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* This software component is licensed by ST under Ultimate Liberty license
|
||||||
|
* SLA0044, the "License"; You may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at:
|
||||||
|
* www.st.com/SLA0044
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "usbd_cdc_if.h"
|
||||||
|
|
||||||
|
/* USER CODE BEGIN INCLUDE */
|
||||||
|
#include "main.h"
|
||||||
|
/* USER CODE END INCLUDE */
|
||||||
|
|
||||||
|
/* Private typedef -----------------------------------------------------------*/
|
||||||
|
/* Private define ------------------------------------------------------------*/
|
||||||
|
/* Private macro -------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USER CODE BEGIN PV */
|
||||||
|
/* Private variables ---------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USER CODE END PV */
|
||||||
|
|
||||||
|
/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
|
||||||
|
* @brief Usb device library.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @addtogroup USBD_CDC_IF
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USBD_CDC_IF_Private_TypesDefinitions USBD_CDC_IF_Private_TypesDefinitions
|
||||||
|
* @brief Private types.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* USER CODE BEGIN PRIVATE_TYPES */
|
||||||
|
|
||||||
|
/* USER CODE END PRIVATE_TYPES */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USBD_CDC_IF_Private_Defines USBD_CDC_IF_Private_Defines
|
||||||
|
* @brief Private defines.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* USER CODE BEGIN PRIVATE_DEFINES */
|
||||||
|
/* USER CODE END PRIVATE_DEFINES */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USBD_CDC_IF_Private_Macros USBD_CDC_IF_Private_Macros
|
||||||
|
* @brief Private macros.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* USER CODE BEGIN PRIVATE_MACRO */
|
||||||
|
|
||||||
|
/* USER CODE END PRIVATE_MACRO */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USBD_CDC_IF_Private_Variables USBD_CDC_IF_Private_Variables
|
||||||
|
* @brief Private variables.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
/* Create buffer for reception and transmission */
|
||||||
|
/* It's up to user to redefine and/or remove those define */
|
||||||
|
/** Received data over USB are stored in this buffer */
|
||||||
|
uint8_t UserRxBufferFS[APP_RX_DATA_SIZE];
|
||||||
|
|
||||||
|
/** Data to send over USB CDC are stored in this buffer */
|
||||||
|
uint8_t UserTxBufferFS[APP_TX_DATA_SIZE];
|
||||||
|
|
||||||
|
/* USER CODE BEGIN PRIVATE_VARIABLES */
|
||||||
|
|
||||||
|
/* USER CODE END PRIVATE_VARIABLES */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USBD_CDC_IF_Exported_Variables USBD_CDC_IF_Exported_Variables
|
||||||
|
* @brief Public variables.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern USBD_HandleTypeDef hUsbDeviceFS;
|
||||||
|
|
||||||
|
/* USER CODE BEGIN EXPORTED_VARIABLES */
|
||||||
|
|
||||||
|
/* USER CODE END EXPORTED_VARIABLES */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USBD_CDC_IF_Private_FunctionPrototypes USBD_CDC_IF_Private_FunctionPrototypes
|
||||||
|
* @brief Private functions declaration.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
static int8_t CDC_Init_FS(void);
|
||||||
|
static int8_t CDC_DeInit_FS(void);
|
||||||
|
static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length);
|
||||||
|
static int8_t CDC_Receive_FS(uint8_t* pbuf, uint32_t *Len);
|
||||||
|
static int8_t CDC_TransmitCplt_FS(uint8_t *pbuf, uint32_t *Len, uint8_t epnum);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN PRIVATE_FUNCTIONS_DECLARATION */
|
||||||
|
|
||||||
|
/* USER CODE END PRIVATE_FUNCTIONS_DECLARATION */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
USBD_CDC_ItfTypeDef USBD_Interface_fops_FS =
|
||||||
|
{
|
||||||
|
CDC_Init_FS,
|
||||||
|
CDC_DeInit_FS,
|
||||||
|
CDC_Control_FS,
|
||||||
|
CDC_Receive_FS,
|
||||||
|
CDC_TransmitCplt_FS
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Private functions ---------------------------------------------------------*/
|
||||||
|
/**
|
||||||
|
* @brief Initializes the CDC media low layer over the FS USB IP
|
||||||
|
* @retval USBD_OK if all operations are OK else USBD_FAIL
|
||||||
|
*/
|
||||||
|
static int8_t CDC_Init_FS(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN 3 */
|
||||||
|
/* Set Application Buffers */
|
||||||
|
USBD_CDC_SetTxBuffer(&hUsbDeviceFS, UserTxBufferFS, 0);
|
||||||
|
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, UserRxBufferFS);
|
||||||
|
return (USBD_OK);
|
||||||
|
/* USER CODE END 3 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief DeInitializes the CDC media low layer
|
||||||
|
* @retval USBD_OK if all operations are OK else USBD_FAIL
|
||||||
|
*/
|
||||||
|
static int8_t CDC_DeInit_FS(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN 4 */
|
||||||
|
return (USBD_OK);
|
||||||
|
/* USER CODE END 4 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Manage the CDC class requests
|
||||||
|
* @param cmd: Command code
|
||||||
|
* @param pbuf: Buffer containing command data (request parameters)
|
||||||
|
* @param length: Number of data to be sent (in bytes)
|
||||||
|
* @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL
|
||||||
|
*/
|
||||||
|
static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN 5 */
|
||||||
|
switch(cmd)
|
||||||
|
{
|
||||||
|
case CDC_SEND_ENCAPSULATED_COMMAND:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CDC_GET_ENCAPSULATED_RESPONSE:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CDC_SET_COMM_FEATURE:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CDC_GET_COMM_FEATURE:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CDC_CLEAR_COMM_FEATURE:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
/*******************************************************************************/
|
||||||
|
/* Line Coding Structure */
|
||||||
|
/*-----------------------------------------------------------------------------*/
|
||||||
|
/* Offset | Field | Size | Value | Description */
|
||||||
|
/* 0 | dwDTERate | 4 | Number |Data terminal rate, in bits per second*/
|
||||||
|
/* 4 | bCharFormat | 1 | Number | Stop bits */
|
||||||
|
/* 0 - 1 Stop bit */
|
||||||
|
/* 1 - 1.5 Stop bits */
|
||||||
|
/* 2 - 2 Stop bits */
|
||||||
|
/* 5 | bParityType | 1 | Number | Parity */
|
||||||
|
/* 0 - None */
|
||||||
|
/* 1 - Odd */
|
||||||
|
/* 2 - Even */
|
||||||
|
/* 3 - Mark */
|
||||||
|
/* 4 - Space */
|
||||||
|
/* 6 | bDataBits | 1 | Number Data bits (5, 6, 7, 8 or 16). */
|
||||||
|
/*******************************************************************************/
|
||||||
|
case CDC_SET_LINE_CODING:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CDC_GET_LINE_CODING:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CDC_SET_CONTROL_LINE_STATE:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CDC_SEND_BREAK:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (USBD_OK);
|
||||||
|
/* USER CODE END 5 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Data received over USB OUT endpoint are sent over CDC interface
|
||||||
|
* through this function.
|
||||||
|
*
|
||||||
|
* @note
|
||||||
|
* This function will issue a NAK packet on any OUT packet received on
|
||||||
|
* USB endpoint until exiting this function. If you exit this function
|
||||||
|
* before transfer is complete on CDC interface (ie. using DMA controller)
|
||||||
|
* it will result in receiving more data while previous ones are still
|
||||||
|
* not sent.
|
||||||
|
*
|
||||||
|
* @param Buf: Buffer of data to be received
|
||||||
|
* @param Len: Number of data received (in bytes)
|
||||||
|
* @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL
|
||||||
|
*/
|
||||||
|
static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN 6 */
|
||||||
|
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
|
||||||
|
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
|
||||||
|
// Schaltet LED4 bei jedem empfangenen Paket um
|
||||||
|
HAL_GPIO_TogglePin(LD4_GPIO_Port, LD4_Pin);
|
||||||
|
// Sendet die empfangenen Daten zurück
|
||||||
|
CDC_Transmit_FS(Buf, *Len);
|
||||||
|
return (USBD_OK);
|
||||||
|
/* USER CODE END 6 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief CDC_Transmit_FS
|
||||||
|
* Data to send over USB IN endpoint are sent over CDC interface
|
||||||
|
* through this function.
|
||||||
|
* @note
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param Buf: Buffer of data to be sent
|
||||||
|
* @param Len: Number of data to be sent (in bytes)
|
||||||
|
* @retval USBD_OK if all operations are OK else USBD_FAIL or USBD_BUSY
|
||||||
|
*/
|
||||||
|
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)
|
||||||
|
{
|
||||||
|
uint8_t result = USBD_OK;
|
||||||
|
/* USER CODE BEGIN 7 */
|
||||||
|
USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceFS.pClassData;
|
||||||
|
if (hcdc->TxState != 0){
|
||||||
|
return USBD_BUSY;
|
||||||
|
}
|
||||||
|
USBD_CDC_SetTxBuffer(&hUsbDeviceFS, Buf, Len);
|
||||||
|
result = USBD_CDC_TransmitPacket(&hUsbDeviceFS);
|
||||||
|
/* USER CODE END 7 */
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief CDC_TransmitCplt_FS
|
||||||
|
* Data transmited callback
|
||||||
|
*
|
||||||
|
* @note
|
||||||
|
* This function is IN transfer complete callback used to inform user that
|
||||||
|
* the submitted Data is successfully sent over USB.
|
||||||
|
*
|
||||||
|
* @param Buf: Buffer of data to be received
|
||||||
|
* @param Len: Number of data received (in bytes)
|
||||||
|
* @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL
|
||||||
|
*/
|
||||||
|
static int8_t CDC_TransmitCplt_FS(uint8_t *Buf, uint32_t *Len, uint8_t epnum)
|
||||||
|
{
|
||||||
|
uint8_t result = USBD_OK;
|
||||||
|
/* USER CODE BEGIN 13 */
|
||||||
|
UNUSED(Buf);
|
||||||
|
UNUSED(Len);
|
||||||
|
UNUSED(epnum);
|
||||||
|
/* USER CODE END 13 */
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* USER CODE BEGIN PRIVATE_FUNCTIONS_IMPLEMENTATION */
|
||||||
|
|
||||||
|
/* USER CODE END PRIVATE_FUNCTIONS_IMPLEMENTATION */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||||
Reference in New Issue
Block a user