活动介绍

keil生成lib库中包含SysTick_Handler,原工程识别不到

时间: 2025-08-05 08:03:29 浏览: 8
<think>我们正在处理一个嵌入式系统开发中的问题,具体是关于Keil MDK环境下使用库文件(lib)时出现的SysTick_Handler未识别问题。根据用户提供的引用信息和问题描述,我们可以分析如下: 关键点: 1. 用户生成了一个lib库,其中包含了SysTick_Handler的定义(可能是重写了该中断服务函数)。 2. 在原工程中使用该lib库时,链接器报告SysTick_Handler未定义(或者重复定义)的错误。 分析: 在STM32的标准启动文件(startup_stm32fxxxx.s)中,已经定义了弱(WEAK)符号的SysTick_Handler。如果用户在自己的代码(例如main.c)或者库中提供了SysTick_Handler的强定义,那么链接器会使用强定义覆盖弱定义。 但是,当用户将代码编译成lib库时,如果原工程中已经包含了启动文件(其中包含弱定义的SysTick_Handler),而lib库中也包含了SysTick_Handler的强定义,那么理论上链接器应该选择lib库中的强定义。然而,问题可能出现在以下几个方面: a) 原工程中已经存在一个强定义的SysTick_Handler(例如在main.c中),导致lib库中的定义被视为重复定义。 b) 原工程没有正确链接lib库,或者lib库中的符号没有被正确提取。 c) 原工程中使用的启动文件可能没有将SysTick_Handler标记为弱定义(WEAK),导致链接时出现重复定义错误。 根据引用[5]:“keil5使用lib尝试。原因是缺少了启动文件,startup_xxx.s,只需要把该文件添加到项目下即可”。但这里用户的情况是原工程已经有启动文件,所以问题可能不是缺少启动文件,而是启动文件中的弱定义和lib库中的强定义冲突。 解决方案: 1. **确保原工程中只有一个强定义的SysTick_Handler**:如果原工程中(例如main.c)已经定义了SysTick_Handler,那么需要移除该定义,因为lib库中已经提供了。或者,如果lib库中的SysTick_Handler是希望被使用的,那么原工程中不应该再定义。 2. **检查启动文件中的定义是否为弱定义**:在启动文件中,应该看到类似下面的代码: EXPORT SysTick_Handler [WEAK] 这样,如果其他地方(如lib库)提供了强定义,链接器就会使用强定义而不会报错。如果没有[WEAK]属性,则会导致重复定义错误。 3. **检查lib库是否被正确链接**:在Keil工程中,需要将生成的lib文件添加到工程,并且在链接器设置中指定库的路径。同时,确保lib库的编译选项(如目标处理器、FPU等)与原工程一致。 4. **如果lib库中的SysTick_Handler需要覆盖启动文件中的弱定义,确保链接顺序正确**:通常,链接器在链接时,先链接obj文件,再链接库。如果启动文件中的弱定义在obj文件中,而lib库中的强定义在库中,那么链接器在遇到启动文件中的弱定义时,会先使用它,然后在链接库时发现强定义,可能会报重复定义。为了避免这种情况,可以尝试将lib库放在启动文件之前链接?但是Keil的链接顺序一般是固定的。另一种方法是,将启动文件中的弱定义保留,而lib库中的强定义会被优先使用(因为强定义优先级高于弱定义)。所以,只要确保lib库中的定义是强定义(没有用WEAK修饰),那么链接器会自动选择强定义。 5. **如果问题仍然存在,可以尝试在启动文件中注释掉SysTick_Handler的弱定义**:但这种方法不推荐,因为启动文件是标准文件,修改后可能影响其他中断。 6. **另一种方法:将启动文件中关于SysTick_Handler的弱定义删除,然后只在lib库中提供定义**。但是这样修改启动文件会使得工程维护困难,特别是当更换芯片型号时。 7. **检查是否在lib库中正确定义了SysTick_Handler**:确保在lib库的源文件中,SysTick_Handler被正确定义为一个全局函数,并且没有static修饰,这样它才能在链接时被其他模块看到。 8. **检查函数名是否完全一致**:注意拼写和大小写,SysTick_Handler必须完全一致。 根据引用[4]中的启动文件代码片段,我们可以看到SysTick_Handler被定义为弱符号: SysTick_Handler PROC EXPORT SysTick_Handler [WEAK] B . ENDP 因此,正常情况下,只要用户在自己的代码或库中提供了强定义的SysTick_Handler,就会覆盖这个弱定义。 所以,问题很可能是在原工程中已经有一个强定义的SysTick_Handler(比如在main.c中定义了一次),而lib库中又定义了一次,导致重复定义。或者,lib库没有被正确链接,导致原工程中启动文件的弱定义没有被覆盖,而用户又在其他地方调用了SysTick_Handler(但lib库没有链接进来),导致未定义错误。 具体步骤: 情况1:重复定义错误 - 检查原工程中是否有多个地方定义了SysTick_Handler(例如在多个.c文件中,或者在启动文件和lib库中都有强定义)。如果是,则保留一个(建议保留lib库中的定义,并删除原工程中其他定义)。 情况2:未定义错误(可能是lib库没有链接进来) - 检查Keil工程设置中是否添加了lib库文件(.lib)到工程中。 - 检查Keil的链接器选项,确保库搜索路径设置正确。 - 确保lib库的编译选项与原工程一致,特别是处理器型号和浮点单元设置。 情况3:函数名不一致 - 检查lib库中定义的中断函数名是否与启动文件中声明的完全一致(包括下划线和大写字母)。 总结解决方案: 1. 移除原工程中(除了启动文件外)所有对SysTick_Handler的定义。 2. 确保lib库被正确添加到工程,并且链接器能够找到它。 3. 如果启动文件中没有将SysTick_Handler标记为弱定义,则需要更换标准启动文件(或添加[WEAK]属性)。 4. 如果lib库中的SysTick_Handler没有被使用(即启动文件的弱定义仍然被使用),可以尝试在lib库中定义时使用更强的链接属性(例如不使用static,且定义为全局函数),并确保lib库在链接时被包含。 另外,引用[5]提到,建立工程时一定要添加启动文件,并且注意选择对应容量。所以请确保原工程中包含了正确的启动文件。 如果以上步骤无法解决,可能需要检查lib库的生成过程,确保生成lib库时没有排除包含SysTick_Handler的源文件。 最后,建议用户检查错误信息是“未定义”还是“重复定义”,这有助于定位问题。 由于问题描述中没有给出具体的错误信息,以上分析基于常见情况。 相关问题: 1. 如何在Keil中正确添加和使用自定义的库文件(.lib)? 2. 如何解决嵌入式系统中的中断服务函数重复定义问题? 3. 在STM32开发中,如何覆盖启动文件中定义的弱符号中断服务函数? 4. Keil链接器在处理库文件和用户代码时的顺序是怎样的? 5. 如何生成一个包含中断服务函数的Keil库文件(.lib)?</think>### Keil生成的lib库包含SysTick_Handler,但原工程无法识别的解决方案 此问题通常由**启动文件冲突**或**链接顺序错误**导致。以下是具体解决步骤: #### 1. **检查启动文件中的弱符号定义** 在标准启动文件(如`startup_stm32fxxx.s`)中,`SysTick_Handler`被定义为弱符号(`[WEAK]`): ```assembly SysTick_Handler PROC EXPORT SysTick_Handler [WEAK] ; 关键弱符号声明 B . ENDP ``` **解决方法**: - 确保原工程使用的启动文件包含`[WEAK]`属性,否则lib库中的强定义会引发冲突[^2][^4]。 #### 2. **验证lib库的链接顺序** Keil链接器按**文件添加顺序**解析符号。若启动文件在lib库之后链接,弱符号可能覆盖lib的强定义。 **解决方法**: - 在Keil工程中,将lib库文件拖到启动文件(`.s`)的上方(优先级更高): ``` 工程结构示例: ├── MyLib.lib # 需在启动文件上方 └── Startup/startup_stm32f4xx.s ``` #### 3. **排查重复定义** - **场景1**:原工程有其他文件(如`main.c`)定义了`SysTick_Handler` → 删除原工程中的额外定义,仅保留lib库的实现。 - **场景2**:lib库编译时未正确导出符号 → 在lib库的源文件中添加`__attribute__((used))`确保符号不被优化: ```c void __attribute__((used)) SysTick_Handler(void) { // 中断处理代码 } ``` #### 4. **检查启动文件兼容性** 确保启动文件与芯片型号匹配(如`startup_stm32f407xx.s`对应F407)。错误的文件会导致中断向量表偏移[^5]。 **操作步骤**: - 在Keil中右键点击启动文件 → Options → 确认芯片型号正确。 #### 5. **验证lib库生成设置** 生成lib库时需启用**中断向量表**支持: - 在lib工程中,勾选`Options for Target → Output → Create Library`,并添加启动文件到lib工程[^3][^5]。 --- ### 相关问题 1. **如何解决Keil中多个中断处理函数的重复定义错误?** 2. **在STM32工程中,弱符号(`[WEAK]`)的作用是什么?** 3. **Keil链接器处理库文件和启动文件的优先级规则是怎样的?** 4. **生成Keil库文件时,如何确保中断向量表被正确包含?** 5. **STM32启动文件中`B .`指令的作用是什么?** [^1]: 内核中断处理函数需在启动文件中声明弱符号 [^2]: 启动文件通过`[WEAK]`允许用户覆盖默认中断处理函数 [^3]: HAL库工程需正确配置启动文件和链接顺序 [^4]: `Reset_Handler`调用`SystemInit`后跳转到`main`,中断函数由弱符号预留 [^5]: 缺少启动文件或型号不匹配会导致中断向量表错误
阅读全文

相关推荐

; 添加CCMRAM初始化(在__main之前)是什么意思,我这边的文件是这样的;******************************************************************************* ;* File Name : startup_stm32f407xx.s ;* Author : MCD Application Team ;* Description : STM32F407xx devices vector table for MDK-ARM toolchain. ;* This module performs: ;* - Set the initial SP ;* - Set the initial PC == Reset_Handler ;* - Set the vector table entries with the exceptions ISR address ;* - Branches to __main in the C library (which eventually ;* calls main()). ;* After Reset the CortexM4 processor is in Thread mode, ;* priority is Privileged, and the Stack is set to Main. ;******************************************************************************* ;* @attention ;* ;* Copyright (c) 2017 STMicroelectronics. ;* All rights reserved. ;* ;* This software is licensed under terms that can be found in the LICENSE file ;* in the root directory of this software component. ;* If no LICENSE file comes with this software, it is provided AS-IS. ;* ;******************************************************************************* ;* <<< Use Configuration Wizard in Context Menu >>> ; ; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs ; <h> Stack Configuration ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> ; </h> Stack_Size EQU 0x400 AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size __initial_sp ; <h> Heap Configuration ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> ; </h> Heap_Size EQU 0x200 AREA HEAP, NOINIT, READWRITE, ALIGN=3 __heap_base Heap_Mem SPACE Heap_Size __heap_limit PRESERVE8 THUMB ; Vector Table Mapped to Address 0 at Reset AREA RESET, DATA, READONLY EXPORT __Vectors EXPORT __Vectors_End EXPORT __Vectors_Size __Vectors DCD __initial_sp ; Top of Stack DCD Reset_Handler ; Reset Handler DCD NMI_Handler ; NMI Handler DCD HardFault_Handler ; Hard Fault Handler DCD MemManage_Handler ; MPU Fault Handler DCD BusFault_Handler ; Bus Fault Handler DCD UsageFault_Handler ; Usage Fault Handler DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD SVC_Handler ; SVCall Handler DCD DebugMon_Handler ; Debug Monitor Handler DCD 0 ; Reserved DCD PendSV_Handler ; PendSV Handler DCD SysTick_Handler ; SysTick Handler ; External Interrupts DCD WWDG_IRQHandler ; Window WatchDog DCD PVD_IRQHandler ; PVD through EXTI Line detection DCD TAMP_STAMP_IRQHandler ; Tamper and TimeStamps through the EXTI line DCD RTC_WKUP_IRQHandler ; RTC Wakeup through the EXTI line DCD FLASH_IRQHandler ; FLASH DCD RCC_IRQHandler ; RCC DCD EXTI0_IRQHandler ; EXTI Line0 DCD EXTI1_IRQHandler ; EXTI Line1 DCD EXTI2_IRQHandler ; EXTI Line2 DCD EXTI3_IRQHandler ; EXTI Line3 DCD EXTI4_IRQHandler ; EXTI Line4 DCD DMA1_Stream0_IRQHandler ; DMA1 Stream 0 DCD DMA1_Stream1_IRQHandler ; DMA1 Stream 1 DCD DMA1_Stream2_IRQHandler ; DMA1 Stream 2 DCD DMA1_Stream3_IRQHandler ; DMA1 Stream 3 DCD DMA1_Stream4_IRQHandler ; DMA1 Stream 4 DCD DMA1_Stream5_IRQHandler ; DMA1 Stream 5 DCD DMA1_Stream6_IRQHandler ; DMA1 Stream 6 DCD ADC_IRQHandler ; ADC1, ADC2 and ADC3s DCD CAN1_TX_IRQHandler ; CAN1 TX DCD CAN1_RX0_IRQHandler ; CAN1 RX0 DCD CAN1_RX1_IRQHandler ; CAN1 RX1 DCD CAN1_SCE_IRQHandler ; CAN1 SCE DCD EXTI9_5_IRQHandler ; External Line[9:5]s DCD TIM1_BRK_TIM9_IRQHandler ; TIM1 Break and TIM9 DCD TIM1_UP_TIM10_IRQHandler ; TIM1 Update and TIM10 DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11 DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare DCD TIM2_IRQHandler ; TIM2 DCD TIM3_IRQHandler ; TIM3 DCD TIM4_IRQHandler ; TIM4 DCD I2C1_EV_IRQHandler ; I2C1 Event DCD I2C1_ER_IRQHandler ; I2C1 Error DCD I2C2_EV_IRQHandler ; I2C2 Event DCD I2C2_ER_IRQHandler ; I2C2 Error DCD SPI1_IRQHandler ; SPI1 DCD SPI2_IRQHandler ; SPI2 DCD USART1_IRQHandler ; USART1 DCD USART2_IRQHandler ; USART2 DCD USART3_IRQHandler ; USART3 DCD EXTI15_10_IRQHandler ; External Line[15:10]s DCD RTC_Alarm_IRQHandler ; RTC Alarm (A and B) through EXTI Line DCD OTG_FS_WKUP_IRQHandler ; USB OTG FS Wakeup through EXTI line DCD TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 DCD FMC_IRQHandler ; FMC DCD SDIO_IRQHandler ; SDIO DCD TIM5_IRQHandler ; TIM5 DCD SPI3_IRQHandler ; SPI3 DCD UART4_IRQHandler ; UART4 DCD UART5_IRQHandler ; UART5 DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors DCD TIM7_IRQHandler ; TIM7 DCD DMA2_Stream0_IRQHandler ; DMA2 Stream 0 DCD DMA2_Stream1_IRQHandler ; DMA2 Stream 1 DCD DMA2_Stream2_IRQHandler ; DMA2 Stream 2 DCD DMA2_Stream3_IRQHandler ; DMA2 Stream 3 DCD DMA2_Stream4_IRQHandler ; DMA2 Stream 4 DCD ETH_IRQHandler ; Ethernet DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line DCD CAN2_TX_IRQHandler ; CAN2 TX DCD CAN2_RX0_IRQHandler ; CAN2 RX0 DCD CAN2_RX1_IRQHandler ; CAN2 RX1 DCD CAN2_SCE_IRQHandler ; CAN2 SCE DCD OTG_FS_IRQHandler ; USB OTG FS DCD DMA2_Stream5_IRQHandler ; DMA2 Stream 5 DCD DMA2_Stream6_IRQHandler ; DMA2 Stream 6 DCD DMA2_Stream7_IRQHandler ; DMA2 Stream 7 DCD USART6_IRQHandler ; USART6 DCD I2C3_EV_IRQHandler ; I2C3 event DCD I2C3_ER_IRQHandler ; I2C3 error DCD OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI DCD OTG_HS_IRQHandler ; USB OTG HS DCD DCMI_IRQHandler ; DCMI DCD 0 ; Reserved DCD HASH_RNG_IRQHandler ; Hash and Rng DCD FPU_IRQHandler ; FPU __Vectors_End __Vectors_Size EQU __Vectors_End - __Vectors AREA |.text|, CODE, READONLY ; Reset handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT SystemInit IMPORT __main LDR R0, =SystemInit BLX R0 LDR R0, =__main BX R0 ENDP ; Dummy Exception Handlers (infinite loops which can be modified) NMI_Handler PROC EXPORT NMI_Handler [WEAK] B . ENDP HardFault_Handler\ PROC EXPORT HardFault_Handler [WEAK] B . ENDP MemManage_Handler\ PROC EXPORT MemManage_Handler [WEAK] B . ENDP BusFault_Handler\ PROC EXPORT BusFault_Handler [WEAK] B . ENDP UsageFault_Handler\ PROC EXPORT UsageFault_Handler [WEAK] B . ENDP SVC_Handler PROC EXPORT SVC_Handler [WEAK] B . ENDP DebugMon_Handler\ PROC EXPORT DebugMon_Handler [WEAK] B . ENDP PendSV_Handler PROC EXPORT PendSV_Handler [WEAK] B . ENDP SysTick_Handler PROC EXPORT SysTick_Handler [WEAK] B . ENDP Default_Handler PROC EXPORT WWDG_IRQHandler [WEAK] EXPORT PVD_IRQHandler [WEAK] EXPORT TAMP_STAMP_IRQHandler [WEAK] EXPORT RTC_WKUP_IRQHandler [WEAK] EXPORT FLASH_IRQHandler [WEAK] EXPORT RCC_IRQHandler [WEAK] EXPORT EXTI0_IRQHandler [WEAK] EXPORT EXTI1_IRQHandler [WEAK] EXPORT EXTI2_IRQHandler [WEAK] EXPORT EXTI3_IRQHandler [WEAK] EXPORT EXTI4_IRQHandler [WEAK] EXPORT DMA1_Stream0_IRQHandler [WEAK] EXPORT DMA1_Stream1_IRQHandler [WEAK] EXPORT DMA1_Stream2_IRQHandler [WEAK] EXPORT DMA1_Stream3_IRQHandler [WEAK] EXPORT DMA1_Stream4_IRQHandler [WEAK] EXPORT DMA1_Stream5_IRQHandler [WEAK] EXPORT DMA1_Stream6_IRQHandler [WEAK] EXPORT ADC_IRQHandler [WEAK] EXPORT CAN1_TX_IRQHandler [WEAK] EXPORT CAN1_RX0_IRQHandler [WEAK] EXPORT CAN1_RX1_IRQHandler [WEAK] EXPORT CAN1_SCE_IRQHandler [WEAK] EXPORT EXTI9_5_IRQHandler [WEAK] EXPORT TIM1_BRK_TIM9_IRQHandler [WEAK] EXPORT TIM1_UP_TIM10_IRQHandler [WEAK] EXPORT TIM1_TRG_COM_TIM11_IRQHandler [WEAK] EXPORT TIM1_CC_IRQHandler [WEAK] EXPORT TIM2_IRQHandler [WEAK] EXPORT TIM3_IRQHandler [WEAK] EXPORT TIM4_IRQHandler [WEAK] EXPORT I2C1_EV_IRQHandler [WEAK] EXPORT I2C1_ER_IRQHandler [WEAK] EXPORT I2C2_EV_IRQHandler [WEAK] EXPORT I2C2_ER_IRQHandler [WEAK] EXPORT SPI1_IRQHandler [WEAK] EXPORT SPI2_IRQHandler [WEAK] EXPORT USART1_IRQHandler [WEAK] EXPORT USART2_IRQHandler [WEAK] EXPORT USART3_IRQHandler [WEAK] EXPORT EXTI15_10_IRQHandler [WEAK] EXPORT RTC_Alarm_IRQHandler [WEAK] EXPORT OTG_FS_WKUP_IRQHandler [WEAK] EXPORT TIM8_BRK_TIM12_IRQHandler [WEAK] EXPORT TIM8_UP_TIM13_IRQHandler [WEAK] EXPORT TIM8_TRG_COM_TIM14_IRQHandler [WEAK] EXPORT TIM8_CC_IRQHandler [WEAK] EXPORT DMA1_Stream7_IRQHandler [WEAK] EXPORT FMC_IRQHandler [WEAK] EXPORT SDIO_IRQHandler [WEAK] EXPORT TIM5_IRQHandler [WEAK] EXPORT SPI3_IRQHandler [WEAK] EXPORT UART4_IRQHandler [WEAK] EXPORT UART5_IRQHandler [WEAK] EXPORT TIM6_DAC_IRQHandler [WEAK] EXPORT TIM7_IRQHandler [WEAK] EXPORT DMA2_Stream0_IRQHandler [WEAK] EXPORT DMA2_Stream1_IRQHandler [WEAK] EXPORT DMA2_Stream2_IRQHandler [WEAK] EXPORT DMA2_Stream3_IRQHandler [WEAK] EXPORT DMA2_Stream4_IRQHandler [WEAK] EXPORT ETH_IRQHandler [WEAK] EXPORT ETH_WKUP_IRQHandler [WEAK] EXPORT CAN2_TX_IRQHandler [WEAK] EXPORT CAN2_RX0_IRQHandler [WEAK] EXPORT CAN2_RX1_IRQHandler [WEAK] EXPORT CAN2_SCE_IRQHandler [WEAK] EXPORT OTG_FS_IRQHandler [WEAK] EXPORT DMA2_Stream5_IRQHandler [WEAK] EXPORT DMA2_Stream6_IRQHandler [WEAK] EXPORT DMA2_Stream7_IRQHandler [WEAK] EXPORT USART6_IRQHandler [WEAK] EXPORT I2C3_EV_IRQHandler [WEAK] EXPORT I2C3_ER_IRQHandler [WEAK] EXPORT OTG_HS_EP1_OUT_IRQHandler [WEAK] EXPORT OTG_HS_EP1_IN_IRQHandler [WEAK] EXPORT OTG_HS_WKUP_IRQHandler [WEAK] EXPORT OTG_HS_IRQHandler [WEAK] EXPORT DCMI_IRQHandler [WEAK] EXPORT HASH_RNG_IRQHandler [WEAK] EXPORT FPU_IRQHandler [WEAK] WWDG_IRQHandler PVD_IRQHandler TAMP_STAMP_IRQHandler RTC_WKUP_IRQHandler FLASH_IRQHandler RCC_IRQHandler EXTI0_IRQHandler EXTI1_IRQHandler EXTI2_IRQHandler EXTI3_IRQHandler EXTI4_IRQHandler DMA1_Stream0_IRQHandler DMA1_Stream1_IRQHandler DMA1_Stream2_IRQHandler DMA1_Stream3_IRQHandler DMA1_Stream4_IRQHandler DMA1_Stream5_IRQHandler DMA1_Stream6_IRQHandler ADC_IRQHandler CAN1_TX_IRQHandler CAN1_RX0_IRQHandler CAN1_RX1_IRQHandler CAN1_SCE_IRQHandler EXTI9_5_IRQHandler TIM1_BRK_TIM9_IRQHandler TIM1_UP_TIM10_IRQHandler TIM1_TRG_COM_TIM11_IRQHandler TIM1_CC_IRQHandler TIM2_IRQHandler TIM3_IRQHandler TIM4_IRQHandler I2C1_EV_IRQHandler I2C1_ER_IRQHandler I2C2_EV_IRQHandler I2C2_ER_IRQHandler SPI1_IRQHandler SPI2_IRQHandler USART1_IRQHandler USART2_IRQHandler USART3_IRQHandler EXTI15_10_IRQHandler RTC_Alarm_IRQHandler OTG_FS_WKUP_IRQHandler TIM8_BRK_TIM12_IRQHandler TIM8_UP_TIM13_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler TIM8_CC_IRQHandler DMA1_Stream7_IRQHandler FMC_IRQHandler SDIO_IRQHandler TIM5_IRQHandler SPI3_IRQHandler UART4_IRQHandler UART5_IRQHandler TIM6_DAC_IRQHandler TIM7_IRQHandler DMA2_Stream0_IRQHandler DMA2_Stream1_IRQHandler DMA2_Stream2_IRQHandler DMA2_Stream3_IRQHandler DMA2_Stream4_IRQHandler ETH_IRQHandler ETH_WKUP_IRQHandler CAN2_TX_IRQHandler CAN2_RX0_IRQHandler CAN2_RX1_IRQHandler CAN2_SCE_IRQHandler OTG_FS_IRQHandler DMA2_Stream5_IRQHandler DMA2_Stream6_IRQHandler DMA2_Stream7_IRQHandler USART6_IRQHandler I2C3_EV_IRQHandler I2C3_ER_IRQHandler OTG_HS_EP1_OUT_IRQHandler OTG_HS_EP1_IN_IRQHandler OTG_HS_WKUP_IRQHandler OTG_HS_IRQHandler DCMI_IRQHandler HASH_RNG_IRQHandler FPU_IRQHandler B . ENDP ALIGN ;******************************************************************************* ; User Stack and Heap initialization ;******************************************************************************* IF :DEF:__MICROLIB EXPORT __initial_sp EXPORT __heap_base EXPORT __heap_limit ELSE IMPORT __use_two_region_memory EXPORT __user_initial_stackheap __user_initial_stackheap LDR R0, = Heap_Mem LDR R1, =(Stack_Mem + Stack_Size) LDR R2, = (Heap_Mem + Heap_Size) LDR R3, = Stack_Mem BX LR ALIGN ENDIF END

*** Using Compiler 'V5.06 update 5 (build 528)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' Build target 'LL' compiling sys.c... sys.c(3): error: #79: expected a type specifier LL_APB2_GRP1_EnableClock( L_APB2_GRP1_PERIPH_SYSCFG); sys.c(3): error: #260-D: explicit type is missing ("int" assumed) LL_APB2_GRP1_EnableClock( L_APB2_GRP1_PERIPH_SYSCFG); sys.c(3): error: #147: declaration is incompatible with "void LL_APB2_GRP1_EnableClock(uint32_t)" (declared at line 1427 of "../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_bus.h") LL_APB2_GRP1_EnableClock( L_APB2_GRP1_PERIPH_SYSCFG); sys.c(4): error: #79: expected a type specifier LL_APB1_GRP1_EnableClock( L_APB1_GRP1_PERIPH_PWR); sys.c(4): error: #260-D: explicit type is missing ("int" assumed) LL_APB1_GRP1_EnableClock( L_APB1_GRP1_PERIPH_PWR); sys.c(4): error: #147: declaration is incompatible with "void LL_APB1_GRP1_EnableClock(uint32_t)" (declared at line 913 of "../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_bus.h") LL_APB1_GRP1_EnableClock( L_APB1_GRP1_PERIPH_PWR); sys.c(6): error: #79: expected a type specifier VIC_SetPriorityGrouping( VIC_PRIORITYGROUP_4); sys.c(6): error: #260-D: explicit type is missing ("int" assumed) VIC_SetPriorityGrouping( VIC_PRIORITYGROUP_4); sys.c(6): error: #147: declaration is incompatible with "void __NVIC_SetPriorityGrouping(uint32_t)" (declared at line 1648 of "../Drivers/CMSIS/Include/core_cm4.h") VIC_SetPriorityGrouping( VIC_PRIORITYGROUP_4); sys.c(8): warning: #1295-D: Deprecated declaration LL_PWR_DisableUCPDDeadBattery - give arg types LL_PWR_DisableUCPDDeadBattery(); sys.c(8): error: #260-D: explicit type is missing ("int" assumed) LL_PWR_DisableUCPDDeadBattery(); sys.c(8): error: #147: declaration is incompatible with "void LL_PWR_DisableUCPDDeadBattery(void)" (declared at line 496 of "../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_pwr.h") LL_PWR_DisableUCPDDeadBattery(); sys.c(40): warning: #1295-D: Deprecated declaration LL_SYSTICK_EnableIT - give arg types LL_SYSTICK_EnableIT() ; sys.c(40): error: #260-D: explicit type is missing ("int" assumed) LL_SYSTICK_EnableIT() ; sys.c(40): error: #147: declaration is incompatible with "void LL_SYSTICK_EnableIT(void)" (declared at line 271 of "../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_cortex.h") LL_SYSTICK_EnableIT() ; sys.c: 2 warnings, 13 errors "LL\LL.axf" - 13 Error(s), 2 Warning(s). Target not created. Build Time Elapsed: 00:00:03

串口无数据,我这里面有lora通信模块和·adc采集模块还有stm32wle5控制温湿度传感器aht20通过串口显示数据* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2022 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "i2c.h" #include "app_lorawan.h" #include "usart.h" #include "gpio.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "AHT20.h" #include <stdio.h> #include <string.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 ---------------------------------------------------------*/ /* USER CODE BEGIN PV */ float temperature,humidity; char message[50]; /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(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_USART1_UART_Init(); MX_I2C1_Init(); MX_GPIO_Init(); //MX_LoRaWAN_Init(); /* USER CODE BEGIN 2 */ AHT20_Init(); float temperature , humidity ; char message [50]; /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { AHT20_Read( &temperature , &humidity); //??AHT20 sprintf(message ,"wendu: %.lf c , shidu: %.lf %%\r\n",temperature , humidity); HAL_UART_Transmit(&huart2, (uint8_t*)message,strlen(message) , HAL_MAX_DELAY); HAL_Delay(1000); /* 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}; /** Configure LSE Drive Capability */ HAL_PWR_EnableBkUpAccess(); __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW); /** Configure the main internal regulator output voltage */ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); /** Initializes the CPU, AHB and APB buses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE|RCC_OSCILLATORTYPE_MSI; RCC_OscInitStruct.LSEState = RCC_LSE_ON; RCC_OscInitStruct.MSIState = RCC_MSI_ON; RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT; RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_11; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } /** Configure the SYSCLKSource, HCLK, PCLK1 and PCLK2 clocks dividers */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK3|RCC_CLOCKTYPE_HCLK |RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1 |RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.AHBCLK3Divider = RCC_SYSCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) { Error_Handler(); } } /* 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 */ #include "aht20.h" #define AHT20_ADDRESS 0x70 void AHT20_Init () { uint8_t readBuffer; HAL_Delay(40); HAL_I2C_Master_Receive(&hi2c1, AHT20_ADDRESS, &readBuffer, 1, HAL_MAX_DELAY); if((readBuffer & 0x08) == 0x00) { uint8_t sendBuffer [3] = {0xBE , 0x08 , 0x00}; HAL_I2C_Master_Transmit(&hi2c1, AHT20_ADDRESS, sendBuffer, 3, HAL_MAX_DELAY); } } void AHT20_Read(float *Temperature , float *Humidity) { uint8_t sendBuffer [3] = {0xAC , 0x33 , 0x00}; uint8_t readBuffer [6]; HAL_I2C_Master_Transmit(&hi2c1, AHT20_ADDRESS, sendBuffer, 3, HAL_MAX_DELAY); HAL_Delay(75); HAL_I2C_Master_Receive(&hi2c1, AHT20_ADDRESS, readBuffer, 6, HAL_MAX_DELAY); if((readBuffer[0] & 0x80) == 0x00) { uint32_t date = 0; date = ((uint32_t )readBuffer[3] >> 4) + ((uint32_t )readBuffer[2] << 4) + ((uint32_t )readBuffer[1] << 12);//?????????. *Humidity = date * 100.0f / (1 << 20); date = (((uint32_t )readBuffer[3] & 0x0F)<< 16) + ((uint32_t )readBuffer[4] << 8) + (uint32_t )readBuffer[5];//& 0x0F: ??????????????0x0F????????0x0F???????00001111,???????readBuffer[3]????,???????? *Temperature = date * 200.0f / (1 << 20) - 50; } }/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.h * @brief : Header for main.c file. * This file contains the common defines of the application. ****************************************************************************** * @attention * * Copyright (c) 2022 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __MAIN_H #define __MAIN_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "stm32wlxx_hal.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Exported types ------------------------------------------------------------*/ /* USER CODE BEGIN ET */ /* USER CODE END ET */ /* Exported constants --------------------------------------------------------*/ /* USER CODE BEGIN EC */ /* USER CODE END EC */ /* Exported macro ------------------------------------------------------------*/ /* USER CODE BEGIN EM */ /* USER CODE END EM */ /* Exported functions prototypes ---------------------------------------------*/ void Error_Handler(void); /* USER CODE BEGIN EFP */ /* USER CODE END EFP */ /* Private defines -----------------------------------------------------------*/ #define RTC_N_PREDIV_S 10 #define RTC_PREDIV_S ((1<<RTC_N_PREDIV_S)-1) #define RTC_PREDIV_A ((1<<(15-RTC_N_PREDIV_S))-1) #define LED2_Pin GPIO_PIN_3 #define LED2_GPIO_Port GPIOB #define LED3_Pin GPIO_PIN_4 #define LED3_GPIO_Port GPIOB #define LED1_Pin GPIO_PIN_5 #define LED1_GPIO_Port GPIOB #define BUT1_Pin GPIO_PIN_0 #define BUT1_GPIO_Port GPIOA #define BUT1_EXTI_IRQn EXTI0_IRQn #define USARTx_TX_Pin GPIO_PIN_2 #define USARTx_TX_GPIO_Port GPIOA #define USARTx_RX_Pin GPIO_PIN_3 #define USARTx_RX_GPIO_Port GPIOA #define USE_HAL_DRIVER #define STM32WL55xx /* USER CODE BEGIN Private defines */ /* USER CODE END Private defines */ #ifdef __cplusplus } #endif #endif /* __MAIN_H */ /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2022 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "i2c.h" #include "app_lorawan.h" #include "usart.h" #include "gpio.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "AHT20.h" #include <stdio.h> #include <string.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 ---------------------------------------------------------*/ /* USER CODE BEGIN PV */ float temperature,humidity; char message[50]; /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(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_USART1_UART_Init(); MX_USART2_UART_Init(); MX_I2C1_Init(); MX_GPIO_Init(); //MX_LoRaWAN_Init(); /* USER CODE BEGIN 2 */ AHT20_Init(); float temperature , humidity ; char message [50]; HAL_UART_Transmit(&huart2, (uint8_t*)"System Start\r\n", 13, HAL_MAX_DELAY); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { AHT20_Read( &temperature , &humidity); sprintf(message ,"wendu: %.lf c , shidu: %.lf %%\r\n",temperature , humidity); HAL_UART_Transmit(&huart2, (uint8_t*)message,strlen(message) , HAL_MAX_DELAY); HAL_Delay(1000); /* 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}; /** Configure LSE Drive Capability */ HAL_PWR_EnableBkUpAccess(); __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW); /** Configure the main internal regulator output voltage */ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); /** Initializes the CPU, AHB and APB buses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE|RCC_OSCILLATORTYPE_MSI; RCC_OscInitStruct.LSEState = RCC_LSE_ON; RCC_OscInitStruct.MSIState = RCC_MSI_ON; RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT; RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_11; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } /** Configure the SYSCLKSource, HCLK, PCLK1 and PCLK2 clocks dividers */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK3|RCC_CLOCKTYPE_HCLK |RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1 |RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.AHBCLK3Divider = RCC_SYSCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) { Error_Handler(); } } /* 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 */ /* * aht20.h * * Created on: Apr 25, 2024 * Author: lenovo */ #ifndef INC_AHT20_H_ #define INC_AHT20_H_ #include "i2c.h" void AHT20_Init (); void AHT20_Read(float *Temperature , float *Humidity); #endif /* INC_AHT20_H_ */

/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2023 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "stdio.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ /* 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 ---------------------------------------------------------*/ UART_HandleTypeDef huart1; TIM_HandleTypeDef htim6; /* USER CODE BEGIN PV */ volatile uint8_t received_data = 0; volatile uint8_t data_ready = 0; /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART1_UART_Init(void); static void MX_TIM6_Init(void); /* USER CODE BEGIN PFP */ void process_received_data(uint8_t data) { // ����LED��ʾ���� HAL_GPIO_WritePin(GPIOF, GPIO_PIN_0, (data & 0x01) ? GPIO_PIN_SET : GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_1, (data & 0x02) ? GPIO_PIN_SET : GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_2, (data & 0x04) ? GPIO_PIN_SET : GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_3, (data & 0x08) ? GPIO_PIN_SET : GPIO_PIN_RESET); printf("[Receiver] �յ�����: %d (0x%X)\r\n", data, data); } /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ /*to redirect printf to uart with semihosting.*/ int _write(int fd, char* ptr, int len) { HAL_UART_Transmit(&huart1, (uint8_t *) ptr, len, HAL_MAX_DELAY); return len; } /* 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_USART1_UART_Init(); MX_TIM6_Init(); /* USER CODE BEGIN 2 */ printf("ReceiveReady\r\n"); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { if(data_ready) { process_received_data(received_data); data_ready = 0; } HAL_Delay(10); // ����CPUռ���� } /* 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}; /** 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 = 25; RCC_OscInitStruct.PLL.PLLN = 336; RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; RCC_OscInitStruct.PLL.PLLQ = 4; 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(); } } /** * @brief TIM6 Initialization Function * @param None * @retval None */ static void MX_TIM6_Init(void) { /* USER CODE BEGIN TIM6_Init 0 */ /* USER CODE END TIM6_Init 0 */ TIM_MasterConfigTypeDef sMasterConfig = {0}; /* USER CODE BEGIN TIM6_Init 1 */ /* USER CODE END TIM6_Init 1 */ htim6.Instance = TIM6; htim6.Init.Prescaler = 16 * 168 * 2 - 1; htim6.Init.CounterMode = TIM_COUNTERMODE_UP; htim6.Init.Period = 65535; htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim6) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN TIM6_Init 2 */ /* USER CODE END TIM6_Init 2 */ } /** * @brief USART1 Initialization Function * @param None * @retval None */ static void MX_USART1_UART_Init(void) { /* USER CODE BEGIN USART1_Init 0 */ /* USER CODE END USART1_Init 0 */ /* USER CODE BEGIN USART1_Init 1 */ /* USER CODE END USART1_Init 1 */ huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN USART1_Init 2 */ /* USER CODE END USART1_Init 2 */ } /** * @brief GPIO Initialization Function * @param None * @retval None */ static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_Initure; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOF_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); /*Configure GPIO pins output : PF0123 8 12(�ж�) 11(������)*/ GPIO_Initure.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12; GPIO_Initure.Mode = GPIO_MODE_OUTPUT_PP; GPIO_Initure.Pull = GPIO_NOPULL; GPIO_Initure.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOF, &GPIO_Initure); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_8, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_11, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_12, GPIO_PIN_RESET); /*Configure GPIO pins : PC01234567 8 all sw */ GPIO_Initure.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7; /* all sw */ GPIO_Initure.Mode = GPIO_MODE_INPUT; GPIO_Initure.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOC, &GPIO_Initure); /*Configure GPIO pin : PC11����ͨ������ */ GPIO_Initure.Pin = GPIO_PIN_8 | GPIO_PIN_11; /* key1_n && key2_n*/ GPIO_Initure.Mode = GPIO_MODE_IT_RISING; GPIO_Initure.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOC, &GPIO_Initure); HAL_NVIC_SetPriority(EXTI9_5_IRQn, 4, 0); HAL_NVIC_EnableIRQ(EXTI9_5_IRQn); HAL_NVIC_SetPriority(EXTI15_10_IRQn, 5, 0); HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); } /* USER CODE BEGIN 4 */ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if(GPIO_Pin == GPIO_PIN_12) { // �ж����� // ��PC0-PC3��ȡ���� received_data = 0; received_data |= HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_0) ? 0x01 : 0x00; received_data |= HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_1) ? 0x02 : 0x00; received_data |= HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_2) ? 0x04 : 0x00; received_data |= HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_3) ? 0x08 : 0x00; data_ready = 1; } } /* 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 */ 编译失败

#include "stm32f10x.h" #include "Motor.h" #include "PWM.h" #include "Serial.h" #include "TRACK.h" #include <stdio.h> #include "Delay.h" #include "stm32f10x_it.h" extern volatile uint32_t SystemTick; // 引用主文件中的变量 // 默认PID参数 #define DEFAULT_KP 8.0 // 比例系数 #define DEFAULT_KI 0.2 // 积分系数 #define DEFAULT_KD 5.0 // 微分系数 #define MAX_I_TERM 20.0 // 积分项限幅 // PID控制变量 float error = 0; float last_error = 0; float integral = 0; float derivative = 0; float output = 0; // PID参数(可通过串口调整) float KP = DEFAULT_KP; float KI = DEFAULT_KI; float KD = DEFAULT_KD; int main(void) { // 外设初始化 SystemInit(); // 系统时钟初始化 Motor_Init(); // 电机初始化 PWM_Init(); // PWM初始化 Serial_Init(); // 串口初始化 IR_Init(); // 红外传感器初始化 // 初始PID参数设置 Set_PID_Params(DEFAULT_KP, DEFAULT_KI, DEFAULT_KD); // 欢迎消息 Serial_Printf("\n\n===== 五路循迹小车 PID调试系统 =====\n"); Serial_Printf("当前PID参数: KP=%.1f, KI=%.1f, KD=%.1f\n", KP, KI, KD); Serial_Printf("调试指令:\n"); Serial_Printf(" P/p: 增加/减少比例系数 (步长0.5)\n"); Serial_Printf(" I/i: 增加/减少积分系数 (步长0.1)\n"); Serial_Printf(" D/d: 增加/减少微分系数 (步长0.5)\n"); Serial_Printf(" R: 重置PID参数到默认值\n"); Serial_Printf(" S: 显示当前PID参数\n"); Serial_Printf(" T: 切换调试模式(开/关)\n"); uint8_t debug_enabled = 1; // 默认开启调试输出 Serial_Printf("SysTick测试: 开始计时...\n"); while(1) { // 1. 循迹控制 Line_Following_Control(); // 2. 串口命令处理 if(Serial_GetRxFlag()) { uint8_t cmd = Serial_GetRxData(); switch(cmd) { // 调整比例系数 case 'P': KP += 0.5f; break; case 'p': KP -= 0.5f; break; // 调整积分系数 case 'I': KI += 0.1f; break; case 'i': KI -= 0.1f; break; // 调整微分系数 case 'D': KD += 0.5f; break; case 'd': KD -= 0.5f; break; // 重置PID参数 case 'R': KP = DEFAULT_KP; KI = DEFAULT_KI; KD = DEFAULT_KD; integral = 0; // 重置积分项 break; // 显示当前参数 case 'S': Serial_Printf("当前PID: KP=%.1f, KI=%.1f, KD=%.1f\n", KP, KI, KD); break; // 切换调试模式 case 'T': debug_enabled = !debug_enabled; Serial_Printf("调试模式: %s\n", debug_enabled ? "开启" : "关闭"); break; } // 限制PID参数范围 if(KP < 0) KP = 0; if(KI < 0) KI = 0; if(KD < 0) KD = 0; // 显示调整后的参数 if(cmd != 'S' && cmd != 'T') { Serial_Printf("PID调整: KP=%.1f, KI=%.1f, KD=%.1f\n", KP, KI, KD); } } // 3. 手动控制调试输出频率 if(debug_enabled) { static uint32_t last_print = 0; if(SystemTick - last_print > 500) { // 每500ms输出一次 Print_Motor_Speeds(); last_print = SystemTick; } } // 4. 延时确保稳定性 Delay_ms(10); // 10ms延时,控制频率约100Hz } } // 简单的延时函数 void Delay_ms(uint32_t ms) { for(uint32_t i = 0; i < ms * 5000; i++); } // 系统滴答计时器(简化实现) __IO uint32_t SystemTick = 0; void SysTick_Handler(void) // 需要在中断向量表中配置 { SystemTick++; } 这段代码中,为什么 Serial_Printf("PID调整: KP=%.1f, KI=%.1f, KD=%.1f\n", KP, KI, KD);这句代码有误,那么应该如何修改

Rebuild started: Project: BLINK *** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Program Files\Keil-v5\ARM\ARMCC\Bin' Rebuild target 'Target_1' assembling startup_stm32f446xx.s... compiling stm32f4xx_it.c... stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP stm32f4xx_it.c: 5 warnings, 0 errors compiling misc.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\misc.c: 5 warnings, 0 errors compiling main.c... stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP main.c(12): warning: #1-D: last line of file ends without a newline main.c: 6 warnings, 0 errors compiling stm32f4xx_crc.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_crc.c: 5 warnings, 0 errors compiling system_stm32f4xx.c... stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP system_stm32f4xx.c: 5 warnings, 0 errors compiling stm32f4xx_cec.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_cec.c: 5 warnings, 0 errors compiling stm32f4xx_adc.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_adc.c: 5 warnings, 0 errors compiling stm32f4xx_cryp.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_cryp.c: 5 warnings, 0 errors compiling stm32f4xx_cryp_des.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_cryp_des.c: 5 warnings, 0 errors compiling stm32f4xx_can.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_can.c: 5 warnings, 0 errors compiling stm32f4xx_cryp_aes.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_cryp_aes.c: 5 warnings, 0 errors compiling stm32f4xx_cryp_tdes.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_cryp_tdes.c: 5 warnings, 0 errors compiling stm32f4xx_dac.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_dac.c: 5 warnings, 0 errors compiling stm32f4xx_dbgmcu.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_dbgmcu.c: 5 warnings, 0 errors compiling stm32f4xx_dcmi.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_dcmi.c: 5 warnings, 0 errors compiling stm32f4xx_dfsdm.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_dfsdm.c: 5 warnings, 0 errors compiling stm32f4xx_dma.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_dma.c: 5 warnings, 0 errors compiling stm32f4xx_dsi.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_dsi.c: 5 warnings, 0 errors compiling stm32f4xx_dma2d.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_dma2d.c: 5 warnings, 0 errors compiling stm32f4xx_exti.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_exti.c: 5 warnings, 0 errors compiling stm32f4xx_flash_ramfunc.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_flash_ramfunc.c: 5 warnings, 0 errors compiling stm32f4xx_flash.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_flash.c: 5 warnings, 0 errors compiling stm32f4xx_gpio.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_gpio.c: 5 warnings, 0 errors compiling stm32f4xx_fmpi2c.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_fmpi2c.c: 5 warnings, 0 errors compiling stm32f4xx_hash.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_hash.c: 5 warnings, 0 errors compiling stm32f4xx_hash_md5.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_hash_md5.c: 5 warnings, 0 errors compiling stm32f4xx_hash_sha1.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_hash_sha1.c: 5 warnings, 0 errors compiling stm32f4xx_iwdg.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_iwdg.c: 5 warnings, 0 errors compiling stm32f4xx_i2c.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_i2c.c: 5 warnings, 0 errors compiling stm32f4xx_lptim.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_lptim.c: 5 warnings, 0 errors compiling stm32f4xx_ltdc.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_ltdc.c: 5 warnings, 0 errors compiling stm32f4xx_pwr.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_pwr.c: 5 warnings, 0 errors compiling stm32f4xx_qspi.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_qspi.c: 5 warnings, 0 errors compiling stm32f4xx_rng.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_rng.c: 5 warnings, 0 errors compiling stm32f4xx_rcc.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_rcc.c: 5 warnings, 0 errors compiling stm32f4xx_sai.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_sai.c: 5 warnings, 0 errors compiling stm32f4xx_sdio.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_sdio.c: 5 warnings, 0 errors compiling stm32f4xx_rtc.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_rtc.c: 5 warnings, 0 errors compiling stm32f4xx_spdifrx.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_spdifrx.c: 5 warnings, 0 errors compiling stm32f4xx_spi.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_spi.c: 5 warnings, 0 errors compiling stm32f4xx_syscfg.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_syscfg.c: 5 warnings, 0 errors compiling stm32f4xx_wwdg.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_wwdg.c: 5 warnings, 0 errors compiling stm32f4xx_usart.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_usart.c: 5 warnings, 0 errors compiling stm32f4xx_tim.c... ..\USER\stm32f4xx.h(11581): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM1_STOP" (declared at line 11574) #define DBGMCU_APB2_FZ_DBG_TIM1_STOP DBGMCU_APB1_FZ_DBG_TIM1_STOP ..\USER\stm32f4xx.h(11582): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM8_STOP" (declared at line 11575) #define DBGMCU_APB2_FZ_DBG_TIM8_STOP DBGMCU_APB1_FZ_DBG_TIM8_STOP ..\USER\stm32f4xx.h(11583): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM9_STOP" (declared at line 11576) #define DBGMCU_APB2_FZ_DBG_TIM9_STOP DBGMCU_APB1_FZ_DBG_TIM9_STOP ..\USER\stm32f4xx.h(11584): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM10_STOP" (declared at line 11577) #define DBGMCU_APB2_FZ_DBG_TIM10_STOP DBGMCU_APB1_FZ_DBG_TIM10_STOP ..\USER\stm32f4xx.h(11585): warning: #47-D: incompatible redefinition of macro "DBGMCU_APB2_FZ_DBG_TIM11_STOP" (declared at line 11578) #define DBGMCU_APB2_FZ_DBG_TIM11_STOP DBGMCU_APB1_FZ_DBG_TIM11_STOP ..\FWLIB\src\stm32f4xx_tim.c: 5 warnings, 0 errors linking... ..\OBJ\BLINK.axf: Error: L6218E: Undefined symbol TimingDelay_Decrement (referred from stm32f4xx_it.o). Not enough information to list image symbols. Not enough information to list load addresses in the image map. Finished: 2 information, 0 warning and 1 error messages. "..\OBJ\BLINK.axf" - 1 Error(s), 221 Warning(s). Target not created. Build Time Elapsed: 00:00:04

大家在看

recommend-type

密码::unlocked::sparkles::locked:创新,方便,安全的加密应用程序

隐身者 创新,方便,安全的加密应用程序。 加密无限位。 只记得一点。 Crypter是一款跨平台的加密应用程序,它使加密和解密变得很方便,同时仍然保持强大的安全性。 它解决了当今大多数安全系统中最弱的链接之一-弱密码。 它简化了安全密码的生成和管理,并且只需要记住一个位-MasterPass。 是一个加密应用程序,可以解密和加密包括文件和文件夹在内的任意数据。 该版本已发布,并针对macOS(OSX),Linux(适用于所有通过发行的发行版)和Windows(32和64位)进行了全面测试。 所有核心模块(提供核心功能的模块)都经过了全面测试。 会将MasterPass保存在操作系统的钥匙串中,因此您不必在每次打开应用程序时都输入它。 为了帮助加快开发速度,请发送PR剩下的内容做 如果您有任何建议,请打开一个问题,并通过PR进行改进! 还要签出 ( )一个分散的端到端加密消息传递应用程序。 链接到此自述文件: : 内容 安装 适用于所有主要平台的所有预构建二进制文件都可以在。 Crypter也适用于macOS的 。 因此,要安装它,只需在终端中运行以下命令:
recommend-type

cpptools-win32.vsix.zip

当vscode安装c/c++扩展时出现与系统不兼容,可离线下载并在扩展中从vsix中安装。使vscode可以自动跳转到变量、函数的声明、定义处,同时支持自动补全。安装完了,重启vscode就可以生效。
recommend-type

模拟电子技术基础简明教程Multisim

模拟电子技术基础简明教程Multisim,仿真实例,很珍贵的
recommend-type

01.WS 445-2014 电子病历基本数据集.rar

WS 445-2014 电子病历基本数据集
recommend-type

制作仪器半高宽补正曲线-jade初学者教程分析

制作仪器半高宽补正曲线 在一些需要仪器半高宽计算的处理前,必须设置好仪器的半高宽,Jade使用标准样品来制作一条随衍射角变化的半高宽曲线,当该曲线制作完成后,保存到参数文件中,以后测量所有的样品都使用该曲线所表示的半高宽作为仪器宽度。 标准样品必须是无晶粒细化、无应力(宏观应力或微观应力)、无畸变的完全退火态样品,一般采用 NIST-LaB6,Silicon-640作为标准样品。

最新推荐

recommend-type

TMS320F28335 SVPWM三相逆变学习板卡:硬件组成与功能详解

基于TMS320F28335 DSP的SVPWM三相逆变学习板卡,涵盖硬件组成、供电与保护机制、SVPWM技术原理及其优势、应用场景和输入电压范围。文中还展示了闭环控制程序的工作流程,并附有简化的示例代码。该板卡采用高效的SVPWM技术,使逆变器电压利用率提升至1.1倍,远高于传统SPWM的0.866倍,适用于多种逆变和控制任务,具有广泛的实际应用价值。 适合人群:对电力电子、嵌入式系统和数字控制感兴趣的工程师和技术爱好者。 使用场景及目标:①研究和学习SVPWM技术及其在三相逆变中的应用;②掌握TMS320F28335 DSP的硬件设计和编程技巧;③应用于电机控制、电源管理等领域,提高逆变效率和稳定性。 其他说明:文中提供的示例代码有助于理解和实现AD采样数据处理及SVPWM更新,便于读者快速上手实践。
recommend-type

一个一键设置时间同步并关闭防火墙的桌面应用小工具

一个一键设置时间同步并关闭防火墙的桌面应用小工具
recommend-type

MATLAB实现主从博弈电热综合能源系统的动态定价与智能能量管理仿真

内容概要:本文介绍了一个基于MATLAB的主从博弈电热综合能源系统动态定价与智能能量管理仿真实验平台。该平台利用主从博弈理论和多时间尺度优化方法,构建了动态定价决策层、用户响应层和耦合约束处理模块。核心代码采用了双层循环结构进行博弈均衡迭代搜索,结合非线性规划和混合整数规划求解器。热力系统建模引入了热惯性的动态传播模型,通过滑动窗口和指数衰减加权求和模拟热量传递的滞后特性。此外,还设计了非对称奖惩的价格激励机制,以及可视化工具展示博弈策略的演化过程。 适合人群:从事电力系统、能源管理和博弈论研究的专业人士,尤其是对MATLAB编程有一定基础的研究人员和技术人员。 使用场景及目标:适用于研究电热综合能源系统的动态定价策略、用户响应行为及其相互作用。目标是探索最优的能量管理策略,提高能源利用效率,降低运营成本。 阅读建议:由于涉及复杂的数学模型和算法实现,建议读者在阅读过程中结合相关理论知识,逐步理解和调试代码,以便更好地掌握模型的工作原理和应用场景。
recommend-type

Pansophica开源项目:智能Web搜索代理的探索

Pansophica开源项目是一个相对较新且具有创新性的智能Web搜索代理,它突破了传统搜索引擎的界限,提供了一种全新的交互方式。首先,我们来探讨“智能Web搜索代理”这一概念。智能Web搜索代理是一个软件程序或服务,它可以根据用户的查询自动执行Web搜索,并尝试根据用户的兴趣、历史搜索记录或其他输入来提供个性化的搜索结果。 Pansophica所代表的不仅仅是搜索结果的展示,它还强调了一个交互式的体验,在动态和交互式虚拟现实中呈现搜索结果。这种呈现方式与现有的搜索体验有着根本的不同。目前的搜索引擎,如Google、Bing和Baidu等,多以静态文本和链接列表的形式展示结果。而Pansophica通过提供一个虚拟现实环境,使得搜索者可以“扭转”视角,进行“飞行”探索,以及“弹网”来浏览不同的内容。这种多维度的交互方式使得信息的浏览变得更加快速和直观,有望改变用户与网络信息互动的方式。 接着,我们关注Pansophica的“开源”属性。所谓开源,指的是软件的源代码可以被公众获取,任何个人或组织都可以自由地使用、学习、修改和分发这些代码。开源软件通常由社区进行开发和维护,这样的模式鼓励了协作创新并减少了重复性劳动,因为全世界的开发者都可以贡献自己的力量。Pansophica项目作为开源软件,意味着其他开发者可以访问和使用其源代码,进一步改进和扩展其功能,甚至可以为Pansophica构建新的应用或服务。 最后,文件名称“Pansophica-src-1.3”表明了我们讨论的特定版本的Pansophica开源代码。数字“1.3”很可能指的是该版本号,表明这是Pansophica项目的第1.3个公开版本。这个版本号对于开发者来说很重要,因为它可以帮助他们追踪更新的进度、比较版本间的差异以及选择最适合其项目的版本。 综合以上信息,Pansophica开源项目不仅在搜索代理领域引入了创新的交互方式,而且通过开源的方式,提供了技术共享和协作的可能性。对于IT行业来说,开源项目是推动技术发展的重要力量,它激发了社区的活力,促进了知识的传播和技术的进步。通过构建一个开源社区,Pansophica可以吸引来自世界各地的开发者和研究人员,共同探索如何将搜索技术与交互式虚拟现实技术结合起来,为用户带来更加丰富和有效的信息检索体验。同时,Pansophica的开源性质也使其更容易适应未来技术的发展,随着社区的不断贡献和反馈,这一平台有望在功能和性能上得到持续的优化和增强。
recommend-type

跨平台内容提取无忧:coze工作流应对社交媒体挑战

# 1. 社交媒体内容提取的必要性与挑战 ## 1.1 内容提取的必要性 在数字时代,社交媒体内容是信息与数据流动的主干道,公司、个人和研究者都在寻求从这些信息中提取价值。无论是为了市场趋势分析、品牌监控、消费者洞察还是公共舆论监测,有效的社交媒体内容提取变得至关重要。这不仅有助于企业做出数据驱动的决策,也能使个人更好地理
recommend-type

vrrp主设备发送的免费arp

<think>好的,我现在需要回答用户关于VRRP主设备发送免费ARP的目的和工作原理的问题。首先,我得回忆一下VRRP的基本概念和工作机制。VRRP,虚拟路由冗余协议,主要用于在局域网中提供默认网关的冗余备份,确保网络的高可用性。主设备(Master)负责转发流量,而备用设备(Backup)则在主设备故障时接管工作。 用户的问题集中在主设备发送免费ARP的目的和机制上。根据引用[2],免费ARP用于通知下游设备虚拟MAC地址的变更。当主设备被选举出来后,它需要让局域网内的其他设备知道虚拟IP对应的MAC地址已经指向自己,这样流量才会被正确路由到主设备。免费ARP的作用应该就是更新这些设备的
recommend-type

为Ghost博客平台打造的Meteor流星包装使用指南

从给定文件信息中,我们可以提炼出以下IT知识点: ### 标题知识点:流星Ghost软件包 1. **流星Ghost软件包的用途**:流星Ghost软件包是专为Ghost博客平台设计的流星(Meteor)应用程序。流星是一个开源的全栈JavaScript平台,用于开发高性能和易于编写的Web应用程序。Ghost是一个开源博客平台,它提供了一个简单且专业的写作环境。 2. **软件包的作用**:流星Ghost软件包允许用户在流星平台上轻松集成Ghost博客。这样做的好处是可以利用流星的实时特性以及易于开发和部署的应用程序框架,同时还能享受到Ghost博客系统的便利和美观。 ### 描述知识点:流星Ghost软件包的使用方法 1. **软件包安装方式**:用户可以通过流星的命令行工具添加名为`mrt:ghost`的软件包。`mrt`是流星的一个命令行工具,用于添加、管理以及配置软件包。 2. **初始化Ghost服务器**:描述中提供了如何在服务器启动时运行Ghost的基本代码示例。这段代码使用了JavaScript的Promise异步操作,`ghost().then(function (ghostServer) {...})`这行代码表示当Ghost服务器初始化完成后,会在Promise的回调函数中提供一个Ghost服务器实例。 3. **配置Ghost博客**:在`then`方法中,首先会获取到Ghost服务器的配置对象`config`,用户可以在此处进行自定义设置,例如修改主题、配置等。 4. **启动Ghost服务器**:在配置完成之后,通过调用`ghostServer.start()`来启动Ghost服务,使其能够处理博客相关的请求。 5. **Web浏览器导航**:一旦流星服务器启动并运行,用户便可以通过Web浏览器访问Ghost博客平台。 ### 标签知识点:JavaScript 1. **JavaScript作为流星Ghost软件包的开发语言**:标签指出流星Ghost软件包是使用JavaScript语言开发的。JavaScript是一种在浏览器端广泛使用的脚本语言,它也是流星平台的基础编程语言。 2. **流星和Ghost共同使用的语言**:JavaScript同样也是Ghost博客平台的开发语言。这表明流星Ghost软件包可以无缝集成,因为底层技术栈相同。 ### 压缩包子文件的文件名称列表知识点:meteor-ghost-master 1. **版本控制和软件包结构**:文件名称`meteor-ghost-master`暗示了该软件包可能托管在像GitHub这样的版本控制系统上。文件名中的`master`通常指的是主分支或主版本。 2. **软件包的目录结构**:通过文件名称可以推断出该软件包可能拥有一个标准的流星软件包结构,包含了初始化、配置、运行等必要的模块和文件。 3. **软件包的维护状态**:由于文件名没有包含特定的版本号,我们无法直接得知软件包的最新更新情况。通常,软件包维护者会将最新的版本代码放在`master`分支上。 ### 总结 流星Ghost软件包提供了一个有效的解决方案,使得流星平台的开发者能够在他们的应用中添加Ghost博客功能。软件包的使用简便,通过流星的命令行工具安装,并通过JavaScript代码配置和启动Ghost服务。通过流星Ghost软件包,开发者能够享受流星的实时特性以及Ghost博客系统的便利性。此外,软件包的命名和结构也暗示了其维护和版本控制的模式,有助于开发者更好地理解如何使用和维护这一软件包。
recommend-type

抖音标题生成自动化:用coze工作流释放创意

# 1. 抖音标题生成自动化的重要性 随着社交媒体平台的崛起,内容的吸引力很大程度上取决于标题的创意与精准性。抖音作为一个日活亿级的短视频平台,高质量的标题能够有效提高视频的点击率,增加内容的传播。但是,人工撰写标题不仅耗时耗力,而且很难做到快速响应热点,自动化标题生成工具应运而生。coze工作流,作为一种实现自动化生成抖音标题的工具,其重要性不言而喻。它能够利用大数据分析和机器学习技术,提高标题的吸引
recommend-type

spss消费结构因子分析

<think>好的,我现在需要帮助用户在SPSS中进行消费结构的因子分析。首先,我要回忆一下因子分析的基本步骤和SPSS的操作流程。用户可能对SPSS不太熟悉,所以步骤要详细,同时需要结合他们提供的引用内容,特别是引用[2]中的适用条件和检验方法。 首先,用户提到了消费结构的数据,这可能包括多个变量,如食品、住房、交通等支出。因子分析适用于这种情况,可以降维并找出潜在因子。根据引用[2],需要检查样本量是否足够,变量间是否有相关性,以及KMO和Bartlett检验的结果。 接下来,我需要按照步骤组织回答:数据准备、适用性检验、因子提取、因子旋转、命名解释、计算得分。每个步骤都要简明扼要,说
recommend-type

OpenMediaVault的Docker映像:快速部署与管理指南

根据提供的文件信息,我们将详细讨论与标题和描述中提及的Docker、OpenMediaVault以及如何部署OpenMediaVault的Docker镜像相关的一系列知识点。 首先,Docker是一个开源的应用容器引擎,允许开发者打包应用及其依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。 OpenMediaVault是一个基于Debian的NAS(网络附加存储)解决方案。它专为家庭或小型办公室提供文件共享、网络附加存储以及打印服务。它提供了一个易用的Web界面,通过这个界面用户可以管理服务器配置、网络设置、用户权限、文件服务等。 在描述中提到了一些Docker命令行操作: 1. `git clone`:用于克隆仓库到本地,这里的仓库指的是“docker-images-openmedivault”。 2. `docker build -t omv`:这是一个构建Docker镜像的命令,其中`-t`参数用于标记镜像名称和标签,这里是标记为“omv”。 3. `docker run`:运行一个容器实例,`-t`参数用于分配一个伪终端,`-i`参数用于交互式操作,`-p 80:80`则是将容器的80端口映射到宿主机的80端口。 启动服务的部分涉及OpenMediaVault的配置和初始化: - ssh服务:用于远程登录到服务器的协议。 - php5-fpm:是PHP的一个FastCGI实现,用于加速PHP的运行。 - nginx:是一个高性能的HTTP和反向代理服务器,常用于优化静态内容的分发。 - openmediavault引擎:指的是OpenMediaVault的核心服务。 - rrdcached:用于收集和缓存性能数据,这些数据可以被rrdtool图形化工具读取。 - collectd:是一个守护进程,用于收集系统性能和提供各种存储方式和传输方式来存储所收集的数据。 为了访问服务,需要在浏览器中输入"http:// IP_OF_DOCKER",其中`IP_OF_DOCKER`指的是运行Docker容器的主机IP地址。 描述中还提到了一个步骤:“在System-> Network-> Interfaces中添加带有dhcp的eth0”,这指的是需要在OpenMediaVault的Web管理界面中配置网络接口。`eth0`是网络接口的名称,通常代表第一个以太网接口。DHCP(动态主机配置协议)是一种自动为网络中的设备分配IP地址的协议,这样设备就可以连接网络并开始通信,无需手动配置IP地址。 【压缩包子文件的文件名称列表】中的“docker-images-openmediavault-master”暗示了这是一个包含Docker镜像文件的代码仓库。通常,“master”分支是代码的主分支,包含了代码库中最新且通常是最稳定的版本。用户可以通过克隆该仓库到本地来获取所有相关的Dockerfile、配置脚本及依赖文件,以便能够自行构建和运行OpenMediaVault的Docker镜像。 综上所述,这些知识点涵盖了从基本的Docker概念、Docker命令行操作、OpenMediaVault服务启动和管理,到具体的网络配置及Docker仓库操作,都是进行Docker化OpenMediaVault部署的关键步骤。