活动介绍

ntime-core.esm-bundler.js:2259 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '__asyncLoader')

时间: 2023-08-28 17:19:48 浏览: 132
这个错误提示通常是因为代码中访问了一个未定义的属性或变量。根据错误提示,是在 Promise 中读取了一个名为 '__asyncLoader' 的属性,但该属性为 undefined,所以会导致 TypeError。 该错误通常发生在使用异步加载模块时,加载过程出现了问题。您可以检查一下相关的代码,看看是否有漏掉了必要的依赖或出现了其他错误。同时,也可以在代码中加入调试语句,逐步排查错误的原因。
相关问题

ntime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.af$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ag found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ag$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ah found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ah$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ai found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ai$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.aj found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.aj$1 found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.aj$1$1 found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.aj$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ak found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ak$1 found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ak$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ak$b found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.al found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.al$1 found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.al$2 found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.al$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.al$b found in modules jetified-kssdk-ad-3

<think>我们正在解决一个Android项目中的依赖冲突问题,具体是关于`kssdk-ad`库的版本冲突。错误信息是:"Duplicateclassjetified-kssdk-ad-3.3.76.5-runtime"这个错误通常发生在同一个库的不同版本被多个依赖项引入,或者同一个类被包含在多个jar包中。###问题分析1.**理解错误**:`Duplicateclass`错误表示在编译或运行时发现了重复的类。这里,类`jetified-kssdk-ad-3.3.76.5-runtime`出现了重复。注意,这个类名中包含了版本号,所以可能是同一个库的不同版本被同时引入了。2.**原因**:可能的原因包括:-项目直接依赖了`kssdk-ad`的多个版本。-不同的依赖项(例如A和B)分别依赖了`kssdk-ad`的不同版本。-同一个依赖项被重复引入(例如,通过不同的路径)。3.**解决方案**:我们需要强制项目使用同一个版本。通常可以通过以下步骤:-检查依赖树,找出哪些模块引入了冲突的依赖。-使用Gradle的依赖解析策略(例如,强制使用某个版本)或者排除冲突的依赖。###解决步骤####步骤1:查看依赖树在AndroidStudio的终端中运行以下命令,查看依赖树:```bash./gradlewapp:dependencies```或者针对具体配置(例如`debugCompileClasspath`):```bash./gradlewapp:dependencies--configurationdebugCompileClasspath```在输出中搜索`kssdk-ad`,找出所有引入该库的依赖路径。####步骤2:分析冲突假设我们发现有两个依赖路径引入了`kssdk-ad`:-`com.example:libA:1.0`->`kssdk-ad:3.3.76.5`-`com.example:libB:2.0`->`kssdk-ad:3.3.76.6`这样就会导致两个版本同时存在,从而产生冲突。####步骤3:解决方案我们可以选择以下两种方法之一:#####方法1:强制使用指定版本在`build.gradle`文件中,添加如下配置:```groovyconfigurations.all{resolutionStrategy{force'com.ksc:kssdk-ad:3.3.76.5'//选择一个版本,这里以3.3.76.5为例}}```#####方法2:排除传递依赖如果某个库引入了我们不想要的版本,可以排除它:```groovydependencies{implementation('com.example:libB:2.0'){excludegroup:'com.ksc',module:'kssdk-ad'}}```####步骤4:重新构建项目应用更改后,重新同步Gradle并构建项目,检查是否解决了冲突。###注意事项-强制使用某个版本可能会引起兼容性问题,确保所选版本与其他依赖兼容。-如果问题仍然存在,可能需要检查是否还有其他地方引入了相同的库。###引用参考在解决依赖冲突时,Gradle官方文档提供了详细的依赖管理策略[^1]。§§相关问题§§1.如何查看Android项目的完整依赖树?2.Gradle依赖冲突的常见解决方法有哪些?3.如何排除特定依赖项的传递依赖?</think>### 解决 Android 项目中 kssdk-ad 3.3.76.5 版本冲突问题 #### 问题分析 当出现 `Duplicate class jetified-kssdk-ad-3.3.76.5-runtime` 错误时,通常表示: 1. **重复依赖**:多个模块引入了相同库的不同版本 2. **冲突命名空间**:类路径中存在相同包名的类 3. **Gradle 依赖解析失败**:Gradle 无法自动合并冲突版本 #### 解决方案步骤 ##### 1. 定位冲突源 在项目根目录执行命令查看依赖树: ```bash ./gradlew app:dependencies --configuration releaseRuntimeClasspath ``` 搜索输出中的 `kssdk-ad`,找出所有引入该库的依赖路径。 ##### 2. 强制统一版本 (推荐) 在 `app/build.gradle` 中添加全局版本强制: ```groovy android { configurations.all { resolutionStrategy { // 强制使用指定版本 force 'com.ksc:kssdk-ad:3.3.76.5' // 遇到冲突时优先选择第一个版本 failOnVersionConflict() } } } ``` ##### 3. 排除重复依赖 针对冲突的依赖项添加排除规则: ```groovy dependencies { implementation('com.libA:library1:1.0') { exclude group: 'com.ksc', module: 'kssdk-ad' } implementation('com.libB:library2:2.0') { exclude group: 'com.ksc', module: 'kssdk-ad' } // 显式声明所需版本 implementation 'com.ksc:kssdk-ad:3.3.76.5' } ``` ##### 4. 清理构建缓存 执行清理命令后重新构建: ```bash ./gradlew clean build --refresh-dependencies ``` #### 验证解决 检查构建日志中是否还有以下错误: ``` Duplicate class com.ksc.kssdk.ad.XXX found in modules... ``` 若消失则冲突已解决。若仍存在,需检查是否有第三方库内嵌了旧版本。 #### 特殊情况处理 若冲突来自 `kssdk-ad` 自身的子模块: ```groovy configurations { all*.exclude group: 'com.ksc', module: 'kssdk-ad-internal' // 排除特定子模块 } ``` > **提示**:使用 `implementation` 代替 `compile` 可减少传递依赖冲突概率。依赖管理工具如 `versionCatalogs` 也能有效管理版本[^1]。

Build started: Project: Project *** Using Compiler 'V5.06 update 5 (build 528)', folder: 'E:\Keil_v5\ARM\ARMCC\Bin' Build target 'Target 1' linking... .\Objects\Project.axf: Error: L6200E: Symbol __ARM_use_no_argv multiply defined (by main.o and delay.o). .\Objects\Project.axf: Error: L6200E: Symbol Speed multiply defined (by main.o and delay.o). .\Objects\Project.axf: Error: L6200E: Symbol Temperature multiply defined (by main.o and delay.o). .\Objects\Project.axf: Error: L6200E: Symbol Mode multiply defined (by main.o and delay.o). .\Objects\Project.axf: Error: L6200E: Symbol Calculate_Temperature multiply defined (by main.o and delay.o). .\Objects\Project.axf: Error: L6200E: Symbol Key_GPIO_Init multiply defined (by main.o and delay.o). .\Objects\Project.axf: Error: L6200E: Symbol OLED_ClearLine multiply defined (by main.o and delay.o). .\Objects\Project.axf: Error: L6200E: Symbol main multiply defined (by main.o and delay.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 8 error messages. ".\Objects\Project.axf" - 8 Error(s), 0 Warning(s). Target not created. Build Time Elapsed: 00:00:00

<think>根据错误信息,问题在于多个目标文件(main.o 和 delay.o)中定义了相同的符号(包括全局变量和函数)。这通常是由于以下原因之一: 1. 在头文件中定义了全局变量或函数,导致多个源文件包含该头文件时都创建了自己的副本。 2. 在多个源文件中定义了相同的全局变量或函数。 解决方案: 1. 对于全局变量,应该在一个源文件中定义,在其他文件中使用`extern`声明。 2. 对于函数,确保每个函数只在一个源文件中定义(除非是内联函数)。 3. 检查头文件,确保其中只包含声明(使用`extern`)而不包含定义。 根据错误信息,我们注意到以下符号被重复定义: - __ARM_use_no_argv:这是编译器内部使用的符号,通常由于在多个文件中使用`main`函数引起。 - Speed, Temperature, Mode:全局变量。 - Calculate_Temperature, Key_GPIO_Init, OLED_ClearLine:函数。 - main:主函数。 特别值得注意的是,错误信息显示`main`函数在main.o和delay.o中都有定义。这通常意味着在delay.c文件中不小心定义了一个main函数。我们需要检查delay.c文件,确保它没有定义main函数。 另外,全局变量和函数重复定义,可能是因为我们在头文件中定义了它们,然后多个源文件包含了这些头文件。 让我们重新组织代码: 步骤: 1. 将全局变量(Speed, Temperature, Mode)的定义放在main.c中,并在main.h中使用`extern`声明它们,这样其他文件可以通过包含main.h来访问这些全局变量。 2. 确保函数(Calculate_Temperature, Key_GPIO_Init, OLED_ClearLine)只在main.c中定义一次,并且在main.h中声明(使用extern或不加extern的函数声明)。 3. 检查delay.c文件,确保它没有定义main函数(这是绝对不允许的,一个工程只能有一个main函数)。 4. 确保delay.c中没有定义其他重复的全局变量和函数。 下面给出修改后的代码结构: main.h: ```c #ifndef __MAIN_H #define __MAIN_H #include "stm32f10x.h" // 全局变量声明(使用extern) extern int8_t Speed; extern int16_t Temperature; extern uint8_t Mode; // 函数声明 void Key_GPIO_Init(void); void OLED_ClearLine(uint8_t line, uint8_t start_col); int16_t Calculate_Temperature(uint16_t adc_val); #endif ``` main.c: ```c #include "main.h" #include "OLED.h" #include "AD.h" #include "Delay.h" #include "Key.h" // 全局变量定义(实际分配存储空间) int8_t Speed = 0; int16_t Temperature = 0; uint8_t Mode = 0; // ... 其他函数定义(Key_GPIO_Init, OLED_ClearLine, Calculate_Temperature)... int main(void) { // ... 主程序 ... } ``` delay.c: ```c #include "Delay.h" #include "stm32f10x.h" // 确保delay.c中没有定义main函数 // 只包含与延时相关的函数 static __IO uint32_t TimingDelay; void SysTick_Handler(void) { if (TimingDelay != 0x00) { TimingDelay--; } } void Delay_Init(void) { // 初始化SysTick if (SysTick_Config(SystemCoreClock / 1000)) { while (1); } } void Delay_ms(__IO uint32_t nTime) { TimingDelay = nTime; while (TimingDelay != 0); } ``` 注意:在delay.c中,我们使用了`static`关键字来定义`TimingDelay`,这样该变量就只在本文件内可见,不会与其他文件中的同名变量冲突。 另外,检查delay.h: ```c #ifndef __DELAY_H #define __DELAY_H #include "stm32f10x.h" void Delay_Init(void); void Delay_ms(__IO uint32_t nTime); #endif ``` 最后,确保在main.c中定义的函数(如Key_GPIO_Init、OLED_ClearLine、Calculate_Temperature)在delay.c中没有定义。 如果还有错误,请检查每个源文件,确保没有重复定义函数和变量。 特别要注意:错误信息中提到了`__ARM_use_no_argv`,这个符号通常与main函数有关。确保整个工程只有一个main函数(在main.c中),其他文件中没有main函数。 如果按照上述步骤修改后仍然有错误,请检查delay.c文件,确保没有包含main函数。另外,检查其他源文件(如Key.c, AD.c等)是否也定义了相同的全局变量或函数。 如果问题仍然存在,请提供delay.c的代码,以便进一步排查。</think>根据错误信息,问题在于多个目标文件中存在重复定义的符号,特别是`__ARM_use_no_argv`和`main`函数被重复定义。这表明您的工程结构存在严重问题,需要彻底重构。以下是完整的解决方案: ### 解决方案:重构工程结构 #### 1. 工程结构重构 ``` Project/ ├── Core/ │ ├── main.c # 主程序 │ ├── main.h # 主程序头文件 │ └── stm32f10x_it.c # 中断处理 ├── Drivers/ │ ├── AD/ │ │ ├── AD.c │ │ └── AD.h │ ├── OLED/ │ │ ├── OLED.c │ │ └── OLED.h │ ├── Key/ │ │ ├── Key.c │ │ └── Key.h │ └── Delay/ │ ├── Delay.c │ └── Delay.h ├── Libraries/ │ ├── CMSIS/ │ └── STM32F10x_StdPeriph_Driver/ └── Startup/ └── startup_stm32f10x_md.s ``` #### 2. 关键文件内容 **main.h** ```c #ifndef __MAIN_H #define __MAIN_H #include "stm32f10x.h" #include "OLED.h" #include "AD.h" #include "Delay.h" #include "Key.h" // 全局变量声明 extern int8_t Speed; extern int16_t Temperature; extern uint8_t Mode; // 函数声明 int16_t Calculate_Temperature(uint16_t adc_val); void OLED_ClearLine(uint8_t line, uint8_t start_col); #endif ``` **main.c** ```c #include "main.h" // 全局变量定义 int8_t Speed = 0; int16_t Temperature = 0; uint8_t Mode = 0; // 温度查找表 const int16_t Temp_LUT[4096] = { // ... 完整的4096个点映射 ... }; int16_t Calculate_Temperature(uint16_t adc_val) { if(adc_val >= sizeof(Temp_LUT)/sizeof(Temp_LUT[0])) return 0; return Temp_LUT[adc_val]; } void OLED_ClearLine(uint8_t line, uint8_t start_col) { char clear_str[20]; for(uint8_t i = 0; i < sizeof(clear_str)-1; i++) clear_str[i] = ' '; clear_str[sizeof(clear_str)-1] = '\0'; OLED_ShowString(line, start_col, clear_str); } int main(void) { // ... 主程序逻辑 ... } ``` **Delay.h** ```c #ifndef __DELAY_H #define __DELAY_H #include "stm32f10x.h" // 函数声明 void Delay_Init(void); void Delay_ms(uint32_t ms); uint32_t Delay_Time(void); #endif ``` **Delay.c** ```c #include "Delay.h" static volatile uint32_t TimingDelay = 0; // 使用static限制作用域 void SysTick_Handler(void) { if (TimingDelay != 0x00) { TimingDelay--; } } void Delay_Init(void) { // 配置SysTick定时器为1ms中断 if (SysTick_Config(SystemCoreClock / 1000)) { while (1); // 初始化失败 } } void Delay_ms(uint32_t ms) { TimingDelay = ms; while(TimingDelay != 0); } uint32_t Delay_Time(void) { return TimingDelay; } ``` **Key.h** ```c #ifndef __KEY_H #define __KEY_H #include "stm32f10x.h" // 函数声明 void Key_GPIO_Init(void); // 宏定义 #define KEY1_DOWN() (!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1)) #define KEY2_DOWN() (!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11)) #endif ``` **Key.c** ```c #include "Key.h" void Key_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); } ``` ### 错误分析及解决方案 #### 1. `__ARM_use_no_argv` 重复定义 - **原因**:Keil ARM编译器在多个文件中定义了入口点 - **解决方案**: 1. 确保只有一个源文件包含`main()`函数 2. 在工程选项中设置正确的入口点: - Options for Target → Linker → Misc controls - 添加:`--entry=Reset_Handler` #### 2. 全局变量重复定义 - **原因**:变量在头文件中定义而非声明 - **解决方案**: ```c // main.h extern int8_t Speed; // 声明 // main.c int8_t Speed = 0; // 定义 ``` #### 3. 函数重复定义 - **原因**:函数实现在头文件中 - **解决方案**: ```c // main.h void OLED_ClearLine(uint8_t line, uint8_t start_col); // 声明 // main.c void OLED_ClearLine(uint8_t line, uint8_t start_col) { // 实现 // 函数体 } ``` #### 4. `main`函数重复定义 - **原因**:多个源文件包含`main()`函数 - **解决方案**: 1. 检查所有源文件,确保只有一个`main()`函数 2. 删除delay.c中的任何`main()`函数 ### Keil工程配置步骤 1. **添加正确的文件到工程**: - 只添加必要的源文件(.c)和启动文件 - 不添加头文件(.h)到工程中 2. **设置包含路径**: - Options for Target → C/C++ → Include Paths - 添加所有包含头文件的目录: ``` .\Inc .\Drivers\AD .\Drivers\OLED .\Drivers\Delay .\Drivers\Key .\Libraries\CMSIS .\Libraries\STM32F10x_StdPeriph_Driver\inc ``` 3. **链接器设置**: - Options for Target → Linker - 取消勾选"Use Memory Layout from Target Dialog" - 添加分散加载文件(scatter file): ``` LR_IROM1 0x08000000 0x00010000 { ; load region size_region ER_IROM1 0x08000000 0x00010000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00005000 { ; RW data .ANY (+RW +ZI) } } ``` 4. **目标设置**: - Options for Target → Target - 设置正确的ROM和RAM地址: - IROM1: 0x08000000, Size: 0x10000 - IRAM1: 0x20000000, Size: 0x5000 ### 完整main.c示例 ```c #include "main.h" int main(void) { // 外设初始化 OLED_Init(); AD_Init(); Key_GPIO_Init(); Delay_Init(); OLED_Clear(); OLED_ShowString(1, 1, "Mode: "); OLED_ShowString(2, 1, "Speed: "); OLED_ShowString(3, 1, "Temp: "); OLED_ShowString(3, 11, "C"); OLED_ShowString(4, 1, "ADC: "); // 初始化显示 OLED_ShowChar(1, 7, Mode ? 'M' : 'A'); OLED_ShowSignedNum(2, 7, Speed, 3); OLED_ShowNum(3, 7, 0, 2); OLED_ShowChar(3, 9, '.'); OLED_ShowNum(3, 10, 0, 1); OLED_ShowNum(4, 6, 0, 4); while (1) { // 温度采集 static uint16_t adc_buffer[5] = {0}; static uint8_t index = 0; adc_buffer[index] = AD_GetValue(); index = (index + 1) % 5; uint32_t adc_sum = 0; for(uint8_t i=0; i<5; i++) adc_sum += adc_buffer[i]; uint16_t adc_avg = adc_sum / 5; // 温度计算 Temperature = Calculate_Temperature(adc_avg); // 温度范围限制 if(Temperature < -100) Temperature = -100; if(Temperature > 1000) Temperature = 1000; // 模式切换 static uint8_t k2_last = 1; if(k2_last && !KEY2_DOWN()) { Mode ^= 1; OLED_ClearLine(1, 7); } k2_last = KEY2_DOWN(); // 速度设置 if(Mode == 0) { Speed = (int8_t)(Temperature / 10); } else { static uint8_t k1_last = 1; if(k1_last && !KEY1_DOWN()) { Speed = (Speed + 10) % 100; OLED_ClearLine(2, 7); } k1_last = KEY1_DOWN(); } // OLED刷新 static uint32_t last_refresh = 0; if(Delay_Time() - last_refresh >= 200) { last_refresh = Delay_Time(); // 更新模式显示 OLED_ShowChar(1, 7, Mode ? 'M' : 'A'); // 更新速度显示 static int8_t last_speed = -1; if(last_speed != Speed) { last_speed = Speed; OLED_ShowSignedNum(2, 7, Speed, 3); } // 更新温度显示 static int16_t last_temp = -1000; if(last_temp != Temperature) { last_temp = Temperature; int8_t temp_int = Temperature / 10; uint8_t is_negative = 0; if(temp_int < 0) { is_negative = 1; temp_int = -temp_int; } uint8_t temp_frac = Temperature % 10; if(temp_frac < 0) temp_frac = -temp_frac; OLED_ShowChar(3, 7, is_negative ? '-' : ' '); OLED_ShowNum(3, 8, temp_int, 2); OLED_ShowChar(3, 10, '.'); OLED_ShowNum(3, 11, temp_frac, 1); } // 更新ADC值显示 static uint16_t last_adc = 0; if(last_adc != adc_avg) { last_adc = adc_avg; OLED_ShowNum(4, 6, adc_avg, 4); } } Delay_ms(5); } } ``` ### 构建和调试步骤 1. **清理工程**: - Project → Clean Target - 删除所有中间文件(Objects和Listings文件夹) 2. **重新构建**: - Project → Rebuild all target files 3. **调试配置**: - Options for Target → Debug - 选择正确的调试器(如ST-Link Debugger) - 设置正确的Flash下载算法 4. **常见错误处理**: ```plaintext Error: L6218E: Undefined symbol SystemInit ``` - 解决方案:添加`system_stm32f10x.c`到工程 ```plaintext Warning: L6310W: Unable to find ARM libraries ``` - 解决方案:Options for Target → Target → ARM Compiler选择正确版本 ### 最终验证 成功构建后,输出应类似: ```plaintext Build target 'Target 1' compiling main.c... compiling AD.c... compiling OLED.c... compiling Delay.c... compiling Key.c... linking... Program Size: Code=12345 RO-data=2345 RW-data=345 ZI-data=4567 ".\Objects\Project.axf" - 0 Error(s), 0 Warning(s). ```
阅读全文

相关推荐

D:\AndroidStudioProjects\MyApplication>gradlew.bat clean BUILD SUCCESSFUL in 1s 2 actionable tasks: 2 up-to-date D:\AndroidStudioProjects\MyApplication> D:\AndroidStudioProjects\MyApplication> D:\AndroidStudioProjects\MyApplication>%ANDROID_SDK_ROOT%\build-tools\35.0.0\ '%ANDROID_SDK_ROOT%\build-tools\35.0.0\' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 D:\AndroidStudioProjects\MyApplication>rd /s /q "%USERPROFILE%\.gradle\caches" C:\Users\Administrator\.gradle\caches\6.5\executionHistory\executionHistory.lock - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\6.5\fileContent\fileContent.lock - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\6.5\fileHashes\fileHashes.bin - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\6.5\fileHashes\fileHashes.lock - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\6.5\fileHashes\resourceHashesCache.bin - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\jars-8\0ddd9547f96fe3f0682309b172763374\cp_proj.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\jars-8\565dbc7d5187aee4976d1bb041b2e8c1\proj.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\jars-8\987b4a563883aa10b85fe6f359314f4b\proj.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\jars-8\9c522d8f36ae46506e5d913c43d1b9ea\cp_proj.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\jars-8\d7225c5d31554bfdfbefadcc993a2aa4\settings.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\jars-8\jars-8.lock - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\journal-1\file-access.bin - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\journal-1\journal-1.lock - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\androidx.databinding\databinding-common\4.1.2\c0c244ac411c918b83a9dc54adad33493a1bc52c\databinding-com mon-4.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\androidx.databinding\databinding-compiler-common\4.1.2\9fff694ffcfcce37638642f4e519a508a85191cd\databi nding-compiler-common-4.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android\signflinger\4.1.2\394654886c76c2f428352c677163aef7777cf636\signflinger-4.1.2.jar - 另一个 程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android\zipflinger\4.1.2\3d91e3c852227643882b70726b7e0de9ecc2972e\zipflinger-4.1.2.jar - 另一个程 序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.databinding\baseLibrary\4.1.2\9d1ddffaeeb01ca05973c774b0c4771d3e80c011\baseLibrary-4.1.2.j ar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools\annotations\27.1.2\38fee9cdd1e800721224dfebd41141de8fb43afa\annotations-27.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools\common\27.1.2\9cc41e6644c8d37143373de102f21194416d3872\common-27.1.2.jar - 另一个程 序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools\dvlib\27.1.2\6c1afd898edc923c409ba66eb6d32a1cf0595907\dvlib-27.1.2.jar - 另一个程序 正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools\repository\27.1.2\957831c43dfe01bcdf756d81500afed8f608c627\repository-27.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools\sdk-common\27.1.2\b3aeea1c4d2a329ceb56582be26e33b679d5ea60\sdk-common-27.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools\sdklib\27.1.2\681a16ea34f8113ba1e491b2abfcf612f8840ee3\sdklib-27.1.2.jar - 另一个程 序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.analytics-library\crash\27.1.2\7654ab27a539856eaaf729d73f8ea4e8a02f6450\crash-27.1.2 .jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.analytics-library\protos\27.1.2\d3e34cee5cd028105870d5802d86b67dc58615e3\protos-27.1 .2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.analytics-library\shared\27.1.2\2c0ca03a8992e8730d150a853bc2a86502a6c1db\shared-27.1 .2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.analytics-library\tracker\27.1.2\e81d885db07d7bd271574b773a4f66de4483a284\tracker-27 .1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\aapt2-proto\4.1.2-6503028\9af46dd51d7e3d70e8f4fce6a9cafe4e46e25650\aapt2-proto -4.1.2-6503028.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\aaptcompiler\4.1.2\7e2e62b769b1abd9bebd1403a790a85b6bb44dd5\aaptcompiler-4.1.2 .jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\apksig\4.1.2\1b9b7535ff23063cf517ec51d3793b6bf2bc3df0\apksig-4.1.2.jar - 另一 个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\apkzlib\4.1.2\892617d74f42de313ad8912f16e610ed06decad6\apkzlib-4.1.2.jar - 另 一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\builder\4.1.2\a3d11213e0843d39de9b79f3a31f51c079fd3ffe\builder-4.1.2.jar - 另 一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\builder-model\4.1.2\230168d0621c0207c486e932ccaf773b46f1374e\builder-model-4.1 .2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\builder-test-api\4.1.2\88541c05768d98c4661d84829da7417be1eaee14\builder-test-a pi-4.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\bundletool\0.14.0\e7ecfb48a6d43f4ec23475c9d04b96c97ecc101b\bundletool-0.14.0.j ar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\gradle\4.1.2\d56e2eaa0cd496e8e0a2fc833be09fe7b9f1e0e6\gradle-4.1.2.jar - 另一 个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\gradle-api\4.1.2\f67ab4948f013866e7f494c2d92711b902da47d3\gradle-api-4.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\manifest-merger\27.1.2\be1200a2283b876d081689fed1cbebcaf1970f0f\manifest-merge r-27.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\transform-api\2.0.0-deprecated-use-gradle-api\47f6c56527c42425742fa9b56ffd3fd8 0763fe03\transform-api-2.0.0-deprecated-use-gradle-api.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build.jetifier\jetifier-core\1.0.0-beta09\c98ee0e5579aed97e17f605a89b101115a2f5a61\j etifier-core-1.0.0-beta09.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build.jetifier\jetifier-processor\1.0.0-beta09\fb2a015ff56e24939a88593ac73b84e627864 476\jetifier-processor-1.0.0-beta09.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.ddms\ddmlib\27.1.2\29aaa89feccafc6012c8b7f91548ec6866a55e52\ddmlib-27.1.2.jar - 另一 个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.layoutlib\layoutlib-api\27.1.2\c15c507501f3cd4f7ea079c102746f7f62dac039\layoutlib-ap i-27.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.lint\lint-gradle-api\27.1.2\f6beef41aa320d2f74b80cf224155db10fe3b545\lint-gradle-api -27.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.lint\lint-model\27.1.2\46f49b331bd25833c0d005089bfc7e2eeb5b85cc\lint-model-27.1.2.ja r - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.auto.value\auto-value-annotations\1.6.2\ed193d86e0af90cc2342aedbe73c5d86b03fa09b\auto-value -annotations-1.6.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.code.findbugs\jsr305\3.0.2\25ea2e8b0c338a877313bd4672d3fe056ea78f0d\jsr305-3.0.2.jar - 另一 个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.code.gson\gson\2.8.5\f645ed69d595b24d4cf8b3fbb64cc505bede8829\gson-2.8.5.jar - 另一个程序正 在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.crypto.tink\tink\1.3.0-rc2\c7efb1ecc3b667b8a0789a1b019b06269037e19b\tink-1.3.0-rc2.jar - 另 一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.errorprone\error_prone_annotations\2.3.2\d1a0c5032570e0f64be6b4d9c90cdeb103129029\error_pro ne_annotations-2.3.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.flatbuffers\flatbuffers-java\1.12.0\8201cc7b511177a37071249e891f2f2fea4b32e9\flatbuffers-ja va-1.12.0.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.guava\failureaccess\1.0.1\1dcf1de382a0bf95a3d8b0849546c88bac1292c9\failureaccess-1.0.1.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\28.1-jre\b0e91dcb6a44ffb6221b5027e12a5cb34b841145\guava-28.1-jre.jar - 另一个程 序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\b421526c5f297295adef1c886e 5246c39d4ac629\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.j2objc\j2objc-annotations\1.3\ba035118bc8bac37d7eff77700720999acd9986d\j2objc-annotations-1 .3.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.jimfs\jimfs\1.1\8fbd0579dc68aba6186935cc1bee21d2f3e7ec1c\jimfs-1.1.jar - 另一个程序正在使用 此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.protobuf\protobuf-java\3.10.0\410b61dd0088aab4caa05739558d43df248958c9\protobuf-java-3.10.0 .jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.protobuf\protobuf-java-util\3.10.0\a68c906db83e93babbb4024ce91e7441bb7598dd\protobuf-java-u til-3.10.0.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.test.platform\core-proto\0.0.2-dev\56452fc5ddd0dc8e0e2f56b86910d97373a4b75c\core-proto-0.0. 2-dev.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.googlecode.json-simple\json-simple\1.1\5e303a03d04e6788dddfa3655272580ae0fc13bb\json-simple-1.1.ja r - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.googlecode.juniversalchardet\juniversalchardet\1.0.3\cd49678784c46aa8789c060538e0154013bb421b\juni versalchardet-1.0.3.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.squareup\javapoet\1.10.0\712c178d35185d8261295913c9f2a7d6867a6007\javapoet-1.10.0.jar - 另一个程序 正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.squareup\javawriter\2.5.0\81241ff7078ef14f42ea2a8995fa09c096256e6b\javawriter-2.5.0.jar - 另一个程 序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.sun.activation\javax.activation\1.2.0\bf744c1e2776ed1de3c55c8dac1057ec331ef744\javax.activation-1. 2.0.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.sun.istack\istack-commons-runtime\3.0.7\c197c86ceec7318b1284bffb49b54226ca774003\istack-commons-ru ntime-3.0.7.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.sun.xml.fastinfoset\FastInfoset\1.2.15\bb7b7ec0379982b97c62cd17465cb6d9155f68e8\FastInfoset-1.2.15 .jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\commons-codec\commons-codec\1.10\4b95f4897fa13f2cd904aee711aeafc0c5295cd8\commons-codec-1.10.jar - 另 一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\commons-io\commons-io\2.4\b1b6ea3b7e4aa4f492509a4952029cd8e48019ad\commons-io-2.4.jar - 另一个程序正在 使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\commons-logging\commons-logging\1.2\4bfc12adfe4842bf07b657f0369c4cb522955686\commons-logging-1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\it.unimi.dsi\fastutil\7.2.0\5ad3a2bb04143f70aa0765fc29fc29571a7d6b34\fastutil-7.2.0.jar - 另一个程序正 在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\javax.activation\javax.activation-api\1.2.0\85262acf3ca9816f9537ca47d5adeabaead7cb16\javax.activation- api-1.2.0.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\javax.inject\javax.inject\1\6975da39a7040257bd51d21a231b76c915872d38\javax.inject-1.jar - 另一个程序正 在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\javax.xml.bind\jaxb-api\2.3.1\8531ad5ac454cc2deb9d4d32c40c4d7451939b5d\jaxb-api-2.3.1.jar - 另一个程序 正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\net.sf.jopt-simple\jopt-simple\4.9\ee9e9eaa0a35360dcfeac129ff4923215fd65904\jopt-simple-4.9.jar - 另一 个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\net.sf.kxml\kxml2\2.3.0\ccbc77a5fd907ef863c29f3596c6f54ffa4e9442\kxml2-2.3.0.jar - 另一个程序正在使用 此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\net.sf.proguard\proguard-base\6.0.3\7135739d2d3834964c543ed21e2936ce34747aca\proguard-base-6.0.3.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\net.sf.proguard\proguard-gradle\6.0.3\e5becf2356695a396b788110e386c38bad523bfc\proguard-gradle-6.0.3.j ar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.antlr\antlr4\4.5.3\f35db7e4b2446e4174ba6a73db7bd6b3e6bb5da1\antlr4-4.5.3.jar - 另一个程序正在使用 此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-compress\1.12\84caa68576e345eb5e7ae61a0e5a9229eb100d7b\commons-compress-1.1 2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpclient\4.5.6\1afe5621985efe90a92d0fbc9be86271efbe796f\httpclient-4.5.6.j ar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore\4.4.10\acc54d9b28bdffe4bbde89ed2e4a1e86b5285e2b\httpcore-4.4.10.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpmime\4.5.6\164343da11db817e81e24e0d9869527e069850c9\httpmime-4.5.6.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.bouncycastle\bcpkix-jdk15on\1.56\4648af70268b6fdb24674fb1fd7c1fcc73db1231\bcpkix-jdk15on-1.56.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.bouncycastle\bcprov-jdk15on\1.56\a153c6f9744a3e9dd6feab5e210e1c9861362ec7\bcprov-jdk15on-1.56.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.checkerframework\checker-qual\2.8.1\eb2e8ab75598548cc8acf9a1ca227e480e01881e\checker-qual-2.8.1.ja r - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.codehaus.mojo\animal-sniffer-annotations\1.18\f7aa683ea79dc6681ee9fb95756c999acbb62f5d\animal-snif fer-annotations-1.18.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\jaxb-runtime\2.3.1\dd6dda9da676a54c5b36ca2806ff95ee017d8738\jaxb-runtime-2.3.1.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\txw2\2.3.1\a09d2c48d3285f206fafbffe0e50619284e92126\txw2-2.3.1.jar - 另一个程序正在 使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jdom\jdom2\2.0.6\6f14738ec2e9dd0011e343717fa624a10f8aab64\jdom2-2.0.6.jar - 另一个程序正在使用此文 件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar - 另一个 程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-reflect\1.3.72\86613e1a669a701b0c660bfd2af4f82a7ae11fca\kotlin-reflect-1.3 .72.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.72\8032138f12c0180bc4e51fe139d4c52b46db6109\kotlin-stdlib-1.3.7 2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.72\6ca8bee3d88957eaaaef077c41c908c9940492d8\kotlin-stdli b-common-1.3.72.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk7\1.3.72\3adfc2f4ea4243e01204be8081fe63bde6b12815\kotlin-stdlib- jdk7-1.3.72.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk8\1.3.72\916d54b9eb6442b615e6f1488978f551c0674720\kotlin-stdlib- jdk8-1.3.72.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains.trove4j\trove4j\20160824\33c3e174a9c8368d93761d3d12712db18e903959\trove4j-20160824.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.json\json\20180813\8566b2b0391d9d4479ea225645c6ed47ef17fe41\json-20180813.jar - 另一个程序正在使用 此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jvnet.staxex\stax-ex\1.8\8cc35f73da321c29973191f2cf143d29d26a1df7\stax-ex-1.8.jar - 另一个程序正在 使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm\7.0\d74d4ba0dee443f68fb2dcb7fcdb945a2cd89912\asm-7.0.jar - 另一个程序正在使用此文件, 进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-analysis\7.0\4b310d20d6f1c6b7197a75f1b5d69f169bc8ac1f\asm-analysis-7.0.jar - 另一个程 序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-commons\7.0\478006d07b7c561ae3a92ddc1829bca81ae0cdd1\asm-commons-7.0.jar - 另一个程序 正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-tree\7.0\29bc62dcb85573af6e62e5b2d735ef65966c4180\asm-tree-7.0.jar - 另一个程序正在使 用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-util\7.0\18d4d07010c24405129a6dbb0e92057f8779fb9d\asm-util-7.0.jar - 另一个程序正在使 用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.tensorflow\tensorflow-lite-metadata\0.1.0-rc1\f6e561e9053f2e9a2779d2ce1dffd45ce4dc3c74\tensorflow- lite-metadata-0.1.0-rc1.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\metadata-2.96\module-artifact.bin - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\metadata-2.96\module-metadata.bin - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\modules-2.lock - 另一个程序正在使用此文件,进程无法访问。 D:\AndroidStudioProjects\MyApplication>cd /d D:\AndroidStudioProjects\MyApplication D:\AndroidStudioProjects\MyApplication>rd /s /q build .gradle 系统找不到指定的文件。 D:\AndroidStudioProjects\MyApplication>rd /s /q "%USERPROFILE%\.gradle\caches" C:\Users\Administrator\.gradle\caches\6.5\executionHistory\executionHistory.lock - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\6.5\fileContent\fileContent.lock - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\6.5\fileHashes\fileHashes.bin - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\6.5\fileHashes\fileHashes.lock - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\6.5\fileHashes\resourceHashesCache.bin - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\jars-8\0ddd9547f96fe3f0682309b172763374\cp_proj.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\jars-8\565dbc7d5187aee4976d1bb041b2e8c1\proj.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\jars-8\987b4a563883aa10b85fe6f359314f4b\proj.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\jars-8\9c522d8f36ae46506e5d913c43d1b9ea\cp_proj.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\jars-8\d7225c5d31554bfdfbefadcc993a2aa4\settings.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\jars-8\jars-8.lock - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\journal-1\file-access.bin - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\journal-1\journal-1.lock - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\androidx.databinding\databinding-common\4.1.2\c0c244ac411c918b83a9dc54adad33493a1bc52c\databinding-com mon-4.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\androidx.databinding\databinding-compiler-common\4.1.2\9fff694ffcfcce37638642f4e519a508a85191cd\databi nding-compiler-common-4.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android\signflinger\4.1.2\394654886c76c2f428352c677163aef7777cf636\signflinger-4.1.2.jar - 另一个 程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android\zipflinger\4.1.2\3d91e3c852227643882b70726b7e0de9ecc2972e\zipflinger-4.1.2.jar - 另一个程 序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.databinding\baseLibrary\4.1.2\9d1ddffaeeb01ca05973c774b0c4771d3e80c011\baseLibrary-4.1.2.j ar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools\annotations\27.1.2\38fee9cdd1e800721224dfebd41141de8fb43afa\annotations-27.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools\common\27.1.2\9cc41e6644c8d37143373de102f21194416d3872\common-27.1.2.jar - 另一个程 序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools\dvlib\27.1.2\6c1afd898edc923c409ba66eb6d32a1cf0595907\dvlib-27.1.2.jar - 另一个程序 正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools\repository\27.1.2\957831c43dfe01bcdf756d81500afed8f608c627\repository-27.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools\sdk-common\27.1.2\b3aeea1c4d2a329ceb56582be26e33b679d5ea60\sdk-common-27.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools\sdklib\27.1.2\681a16ea34f8113ba1e491b2abfcf612f8840ee3\sdklib-27.1.2.jar - 另一个程 序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.analytics-library\crash\27.1.2\7654ab27a539856eaaf729d73f8ea4e8a02f6450\crash-27.1.2 .jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.analytics-library\protos\27.1.2\d3e34cee5cd028105870d5802d86b67dc58615e3\protos-27.1 .2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.analytics-library\shared\27.1.2\2c0ca03a8992e8730d150a853bc2a86502a6c1db\shared-27.1 .2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.analytics-library\tracker\27.1.2\e81d885db07d7bd271574b773a4f66de4483a284\tracker-27 .1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\aapt2-proto\4.1.2-6503028\9af46dd51d7e3d70e8f4fce6a9cafe4e46e25650\aapt2-proto -4.1.2-6503028.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\aaptcompiler\4.1.2\7e2e62b769b1abd9bebd1403a790a85b6bb44dd5\aaptcompiler-4.1.2 .jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\apksig\4.1.2\1b9b7535ff23063cf517ec51d3793b6bf2bc3df0\apksig-4.1.2.jar - 另一 个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\apkzlib\4.1.2\892617d74f42de313ad8912f16e610ed06decad6\apkzlib-4.1.2.jar - 另 一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\builder\4.1.2\a3d11213e0843d39de9b79f3a31f51c079fd3ffe\builder-4.1.2.jar - 另 一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\builder-model\4.1.2\230168d0621c0207c486e932ccaf773b46f1374e\builder-model-4.1 .2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\builder-test-api\4.1.2\88541c05768d98c4661d84829da7417be1eaee14\builder-test-a pi-4.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\bundletool\0.14.0\e7ecfb48a6d43f4ec23475c9d04b96c97ecc101b\bundletool-0.14.0.j ar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\gradle\4.1.2\d56e2eaa0cd496e8e0a2fc833be09fe7b9f1e0e6\gradle-4.1.2.jar - 另一 个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\gradle-api\4.1.2\f67ab4948f013866e7f494c2d92711b902da47d3\gradle-api-4.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\manifest-merger\27.1.2\be1200a2283b876d081689fed1cbebcaf1970f0f\manifest-merge r-27.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build\transform-api\2.0.0-deprecated-use-gradle-api\47f6c56527c42425742fa9b56ffd3fd8 0763fe03\transform-api-2.0.0-deprecated-use-gradle-api.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build.jetifier\jetifier-core\1.0.0-beta09\c98ee0e5579aed97e17f605a89b101115a2f5a61\j etifier-core-1.0.0-beta09.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.build.jetifier\jetifier-processor\1.0.0-beta09\fb2a015ff56e24939a88593ac73b84e627864 476\jetifier-processor-1.0.0-beta09.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.ddms\ddmlib\27.1.2\29aaa89feccafc6012c8b7f91548ec6866a55e52\ddmlib-27.1.2.jar - 另一 个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.layoutlib\layoutlib-api\27.1.2\c15c507501f3cd4f7ea079c102746f7f62dac039\layoutlib-ap i-27.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.lint\lint-gradle-api\27.1.2\f6beef41aa320d2f74b80cf224155db10fe3b545\lint-gradle-api -27.1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.android.tools.lint\lint-model\27.1.2\46f49b331bd25833c0d005089bfc7e2eeb5b85cc\lint-model-27.1.2.ja r - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.auto.value\auto-value-annotations\1.6.2\ed193d86e0af90cc2342aedbe73c5d86b03fa09b\auto-value -annotations-1.6.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.code.findbugs\jsr305\3.0.2\25ea2e8b0c338a877313bd4672d3fe056ea78f0d\jsr305-3.0.2.jar - 另一 个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.code.gson\gson\2.8.5\f645ed69d595b24d4cf8b3fbb64cc505bede8829\gson-2.8.5.jar - 另一个程序正 在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.crypto.tink\tink\1.3.0-rc2\c7efb1ecc3b667b8a0789a1b019b06269037e19b\tink-1.3.0-rc2.jar - 另 一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.errorprone\error_prone_annotations\2.3.2\d1a0c5032570e0f64be6b4d9c90cdeb103129029\error_pro ne_annotations-2.3.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.flatbuffers\flatbuffers-java\1.12.0\8201cc7b511177a37071249e891f2f2fea4b32e9\flatbuffers-ja va-1.12.0.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.guava\failureaccess\1.0.1\1dcf1de382a0bf95a3d8b0849546c88bac1292c9\failureaccess-1.0.1.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\28.1-jre\b0e91dcb6a44ffb6221b5027e12a5cb34b841145\guava-28.1-jre.jar - 另一个程 序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\b421526c5f297295adef1c886e 5246c39d4ac629\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.j2objc\j2objc-annotations\1.3\ba035118bc8bac37d7eff77700720999acd9986d\j2objc-annotations-1 .3.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.jimfs\jimfs\1.1\8fbd0579dc68aba6186935cc1bee21d2f3e7ec1c\jimfs-1.1.jar - 另一个程序正在使用 此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.protobuf\protobuf-java\3.10.0\410b61dd0088aab4caa05739558d43df248958c9\protobuf-java-3.10.0 .jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.protobuf\protobuf-java-util\3.10.0\a68c906db83e93babbb4024ce91e7441bb7598dd\protobuf-java-u til-3.10.0.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.test.platform\core-proto\0.0.2-dev\56452fc5ddd0dc8e0e2f56b86910d97373a4b75c\core-proto-0.0. 2-dev.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.googlecode.json-simple\json-simple\1.1\5e303a03d04e6788dddfa3655272580ae0fc13bb\json-simple-1.1.ja r - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.googlecode.juniversalchardet\juniversalchardet\1.0.3\cd49678784c46aa8789c060538e0154013bb421b\juni versalchardet-1.0.3.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.squareup\javapoet\1.10.0\712c178d35185d8261295913c9f2a7d6867a6007\javapoet-1.10.0.jar - 另一个程序 正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.squareup\javawriter\2.5.0\81241ff7078ef14f42ea2a8995fa09c096256e6b\javawriter-2.5.0.jar - 另一个程 序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.sun.activation\javax.activation\1.2.0\bf744c1e2776ed1de3c55c8dac1057ec331ef744\javax.activation-1. 2.0.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.sun.istack\istack-commons-runtime\3.0.7\c197c86ceec7318b1284bffb49b54226ca774003\istack-commons-ru ntime-3.0.7.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.sun.xml.fastinfoset\FastInfoset\1.2.15\bb7b7ec0379982b97c62cd17465cb6d9155f68e8\FastInfoset-1.2.15 .jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\commons-codec\commons-codec\1.10\4b95f4897fa13f2cd904aee711aeafc0c5295cd8\commons-codec-1.10.jar - 另 一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\commons-io\commons-io\2.4\b1b6ea3b7e4aa4f492509a4952029cd8e48019ad\commons-io-2.4.jar - 另一个程序正在 使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\commons-logging\commons-logging\1.2\4bfc12adfe4842bf07b657f0369c4cb522955686\commons-logging-1.2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\it.unimi.dsi\fastutil\7.2.0\5ad3a2bb04143f70aa0765fc29fc29571a7d6b34\fastutil-7.2.0.jar - 另一个程序正 在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\javax.activation\javax.activation-api\1.2.0\85262acf3ca9816f9537ca47d5adeabaead7cb16\javax.activation- api-1.2.0.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\javax.inject\javax.inject\1\6975da39a7040257bd51d21a231b76c915872d38\javax.inject-1.jar - 另一个程序正 在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\javax.xml.bind\jaxb-api\2.3.1\8531ad5ac454cc2deb9d4d32c40c4d7451939b5d\jaxb-api-2.3.1.jar - 另一个程序 正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\net.sf.jopt-simple\jopt-simple\4.9\ee9e9eaa0a35360dcfeac129ff4923215fd65904\jopt-simple-4.9.jar - 另一 个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\net.sf.kxml\kxml2\2.3.0\ccbc77a5fd907ef863c29f3596c6f54ffa4e9442\kxml2-2.3.0.jar - 另一个程序正在使用 此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\net.sf.proguard\proguard-base\6.0.3\7135739d2d3834964c543ed21e2936ce34747aca\proguard-base-6.0.3.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\net.sf.proguard\proguard-gradle\6.0.3\e5becf2356695a396b788110e386c38bad523bfc\proguard-gradle-6.0.3.j ar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.antlr\antlr4\4.5.3\f35db7e4b2446e4174ba6a73db7bd6b3e6bb5da1\antlr4-4.5.3.jar - 另一个程序正在使用 此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-compress\1.12\84caa68576e345eb5e7ae61a0e5a9229eb100d7b\commons-compress-1.1 2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpclient\4.5.6\1afe5621985efe90a92d0fbc9be86271efbe796f\httpclient-4.5.6.j ar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore\4.4.10\acc54d9b28bdffe4bbde89ed2e4a1e86b5285e2b\httpcore-4.4.10.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpmime\4.5.6\164343da11db817e81e24e0d9869527e069850c9\httpmime-4.5.6.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.bouncycastle\bcpkix-jdk15on\1.56\4648af70268b6fdb24674fb1fd7c1fcc73db1231\bcpkix-jdk15on-1.56.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.bouncycastle\bcprov-jdk15on\1.56\a153c6f9744a3e9dd6feab5e210e1c9861362ec7\bcprov-jdk15on-1.56.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.checkerframework\checker-qual\2.8.1\eb2e8ab75598548cc8acf9a1ca227e480e01881e\checker-qual-2.8.1.ja r - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.codehaus.mojo\animal-sniffer-annotations\1.18\f7aa683ea79dc6681ee9fb95756c999acbb62f5d\animal-snif fer-annotations-1.18.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\jaxb-runtime\2.3.1\dd6dda9da676a54c5b36ca2806ff95ee017d8738\jaxb-runtime-2.3.1.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\txw2\2.3.1\a09d2c48d3285f206fafbffe0e50619284e92126\txw2-2.3.1.jar - 另一个程序正在 使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jdom\jdom2\2.0.6\6f14738ec2e9dd0011e343717fa624a10f8aab64\jdom2-2.0.6.jar - 另一个程序正在使用此文 件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar - 另一个 程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-reflect\1.3.72\86613e1a669a701b0c660bfd2af4f82a7ae11fca\kotlin-reflect-1.3 .72.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.72\8032138f12c0180bc4e51fe139d4c52b46db6109\kotlin-stdlib-1.3.7 2.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.72\6ca8bee3d88957eaaaef077c41c908c9940492d8\kotlin-stdli b-common-1.3.72.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk7\1.3.72\3adfc2f4ea4243e01204be8081fe63bde6b12815\kotlin-stdlib- jdk7-1.3.72.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk8\1.3.72\916d54b9eb6442b615e6f1488978f551c0674720\kotlin-stdlib- jdk8-1.3.72.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jetbrains.trove4j\trove4j\20160824\33c3e174a9c8368d93761d3d12712db18e903959\trove4j-20160824.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.json\json\20180813\8566b2b0391d9d4479ea225645c6ed47ef17fe41\json-20180813.jar - 另一个程序正在使用 此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.jvnet.staxex\stax-ex\1.8\8cc35f73da321c29973191f2cf143d29d26a1df7\stax-ex-1.8.jar - 另一个程序正在 使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm\7.0\d74d4ba0dee443f68fb2dcb7fcdb945a2cd89912\asm-7.0.jar - 另一个程序正在使用此文件, 进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-analysis\7.0\4b310d20d6f1c6b7197a75f1b5d69f169bc8ac1f\asm-analysis-7.0.jar - 另一个程 序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-commons\7.0\478006d07b7c561ae3a92ddc1829bca81ae0cdd1\asm-commons-7.0.jar - 另一个程序 正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-tree\7.0\29bc62dcb85573af6e62e5b2d735ef65966c4180\asm-tree-7.0.jar - 另一个程序正在使 用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-util\7.0\18d4d07010c24405129a6dbb0e92057f8779fb9d\asm-util-7.0.jar - 另一个程序正在使 用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.tensorflow\tensorflow-lite-metadata\0.1.0-rc1\f6e561e9053f2e9a2779d2ce1dffd45ce4dc3c74\tensorflow- lite-metadata-0.1.0-rc1.jar - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\metadata-2.96\module-artifact.bin - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\metadata-2.96\module-metadata.bin - 另一个程序正在使用此文件,进程无法访问。 C:\Users\Administrator\.gradle\caches\modules-2\modules-2.lock - 另一个程序正在使用此文件,进程无法访问。 D:\AndroidStudioProjects\MyApplication> D:\AndroidStudioProjects\MyApplication># 清理项目本地缓存 '#' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 D:\AndroidStudioProjects\MyApplication>cd /d D:\AndroidStudioProjects\MyApplication D:\AndroidStudioProjects\MyApplication>rd /s /q build .gradle 系统找不到指定的文件。 系统找不到指定的文件。 D:\AndroidStudioProjects\MyApplication>echo %ANDROID_SDK_ROOT% %ANDROID_SDK_ROOT% D:\AndroidStudioProjects\MyApplication> D:\AndroidStudioProjects\MyApplication># 若未设置,手动指定路径(示例) '#' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 D:\AndroidStudioProjects\MyApplication>set ANDROID_SDK_ROOT=C:\Users\YourName\AppData\Local\Android\Sdk D:\AndroidStudioProjects\MyApplication>

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 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_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 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 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_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_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_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 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_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_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_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_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_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_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_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_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.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_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_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_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_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_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_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_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 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_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 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

#! /bin/bash # This script is created by DQE Ghosty Liu 2020/08/10 # ### RW TEST PARAMETER ### PARTITION="sdb1" declare -i RW_count=1 declare -i RW_cycle=1 #(1 cycle = 128 MB) Check_Flag=1 #(1 = check disk scan result; 0 = not check disk scan result) Remove_Flag=1 #(1 = remove test file; 0 = not remove test file) ### PKTGEN TEST PARAMETER ### PAIRS="ens8f0-ens8f1-8 enp2s0f0-enp2s0f1-9 enp130s0f0-enp130s0f1-10 ens5f0-ens5f1-11 ens5f2-ens5f3-12" #(port-port-core) JUMBO=y declare -i TIME=30 ### STRESS TEST PARAMETER ### COMMAND="stress -c 4 -m 4 --vm-bytes 1024M -t 60" declare -i CYCLE=20 #(1 cycle = 3 seconds) ### PING TEST PARAMETER ### declare -i PING_COUNT=10 ### RTC WAKE PARAMETER ### declare -i delay=30 # <Decide the RTC wake up delay time here.> ### SPECIAL SCAN PARAMETER ### check_item="error" # <Add other check item for SPECIAL_SCAN here.> ########################################################################################################## function DD() { for k in $(seq $RW_count expr $RW_cycle - 1) do if [ ! -z "$k" ] then dd if=/dev/zero of=/$partition/$count.$k.tmp bs=32M count=4 conv=fsync &> /dev/null & fi done dd if=/dev/zero of=/$partition/$count.$RW_cycle.tmp bs=32M count=4 conv=fsync &> /dev/null } function RW_TEST() { if [ "$count" -gt "1" ] && [ "$Check_Flag" -eq "1" ] then echo -e "Check DISK SCAN reeult ..." if [ -z "diff -q /Test/CYCLE_LOG/DISK_SCAN/1.log /Test/CYCLE_LOG/DISK_SCAN/$count.log" ] then echo -e "Check Pass." else echo -e "Check failed. RW Test will be terminated." echo "COUNT=$count :" >> /Test/CYCLE_LOG/rw_test_fail.log echo -e "Check failed. RW Test had been skipped." >> /Test/CYCLE_LOG/rw_test_fail.log return 1 fi fi echo -e "Start Storage R/W Test ..." if [ ! -d "/Test/CYCLE_LOG/RW_TEST" ] then mkdir -p /Test/CYCLE_LOG/RW_TEST fi for partition in $PARTITION do if [ ! -d "/Test/CYCLE_LOG/RW_TEST/$partition" ] then mkdir -p /Test/CYCLE_LOG/RW_TEST/$partition fi if [ ! -z "ls /dev/ | grep $partition" ] || [ ! -d "/$partition" ] then mkdir -p /$partition if [ -z "mount | grep $partition" ] then mount /dev/$partition /$partition else if [ ! -z "mount | grep $partition | grep /mnt/hdd" ] then echo "Please make sure that Partition: $partition is not used by Testbed!" rm -rf /$partition rm -rf /Test/CYCLE_LOG/RW_TEST/$partition continue fi fi echo "COUNT : $count" >> /Test/CYCLE_LOG/RW_TEST/$partition/result.log (time -p DD) 2>> /Test/CYCLE_LOG/RW_TEST/$partition/result.log & sleep 1 fi done while [ 1 ] do buf=ps -aux | grep -i "/dev/zero" | wc -l if [ "$buf" -eq "1" ] then break fi sleep 1 done sync sleep 5 for partition in $PARTITION do if [ -d "/$partition" ] then if [ "$Remove_Flag" -eq "1" ] then rm -rf /$partition/* sync fi umount /$partition fi done if [ ! -z "dmesg | grep -i ata | grep -i error" ] then echo "COUNT=$count :" >> /Test/CYCLE_LOG/rw_test_fail.log dmesg | grep -i ata | grep -i error >> /Test/CYCLE_LOG/rw_test_fail.log fi } function PKTGEN_TEST() { echo -e "Start PKTGEN Test ..." if [ ! -d "/Test/CYCLE_LOG/PKTGEN_TEST" ] then mkdir -p /Test/CYCLE_LOG/PKTGEN_TEST fi if [ -z "lsmod | grep pkt" ] then echo "Please install pktgen driver first!!" exit 1 fi for pair in $PAIRS do PORT_A=echo $pair | cut -d "-" -f 1 PORT_B=echo $pair | cut -d "-" -f 2 CPU_NUM=echo $pair | cut -d "-" -f 3 ifconfig $PORT_A up ifconfig $PORT_B up if [ "$count" -le "1" ] then echo $PORT_A >> /Test/CYCLE_LOG/ethernet_port.list echo $PORT_B >> /Test/CYCLE_LOG/ethernet_port.list fi echo "rem_device_all" > /proc/net/pktgen/kpktgend_$CPU_NUM echo "add_device $PORT_A" > /proc/net/pktgen/kpktgend_$CPU_NUM echo "add_device $PORT_B" > /proc/net/pktgen/kpktgend_$CPU_NUM echo "max_before_softirq 10000" > /proc/net/pktgen/kpktgend_$CPU_NUM if [ ! -f "/proc/net/pktgen/$PORT_A" ] || [ ! -f "/proc/net/pktgen/$PORT_B" ] then echo "Fail to add $pair to pktgen" exit 1 fi echo "count 0" > /proc/net/pktgen/$PORT_A echo "count 0" > /proc/net/pktgen/$PORT_B if [ "$JUMBO" == "y" ] then ifconfig $PORT_A mtu 9000 up ifconfig $PORT_B mtu 9000 up echo "pkt_size 9014" > /proc/net/pktgen/$PORT_A echo "pkt_size 9014" > /proc/net/pktgen/$PORT_B else echo "pkt_size 1514" > /proc/net/pktgen/$PORT_A echo "pkt_size 1514" > /proc/net/pktgen/$PORT_B fi echo "delay 100" > /proc/net/pktgen/$PORT_A echo "delay 100" > /proc/net/pktgen/$PORT_B echo "dst_mac ifconfig $PORT_B | grep ether | tr -s " " | cut -d " " -f 3" > /proc/net/pktgen/$PORT_A echo "dst_mac ifconfig $PORT_A | grep ether | tr -s " " | cut -d " " -f 3" > /proc/net/pktgen/$PORT_B done sleep 10 echo start > /proc/net/pktgen/pgctrl & declare -i buf=cat /sys/class/rtc/rtc0/since_epoch buf=$buf+$TIME while [ 1 ] do if [ "cat /sys/class/rtc/rtc0/since_epoch" -le "$buf" ] then sleep 1 else break fi done kill -9 $! sleep 1 for i in cat /Test/CYCLE_LOG/ethernet_port.list do if [ ! -f "/Test/CYCLE_LOG/PKTGEN_TEST/$i" ] then mkdir -p /Test/CYCLE_LOG/PKTGEN_TEST/$i fi ethtool -S $i | grep -i crc > /Test/CYCLE_LOG/PKTGEN_TEST/$i/CRC_$count.log cat /proc/net/pktgen/$i > /Test/CYCLE_LOG/PKTGEN_TEST/$i/PKTGEN_$count.log for j in cat /Test/CYCLE_LOG/PKTGEN_TEST/$i/CRC_$count.log do declare -i buf=echo $j | cut -d ":" -f 2 | cut -d " " -f 2 if [ "$buf" -gt "0" ] then echo "COUNT=$count :" >> /Test/CYCLE_LOG/pktgen_test_fail.log echo "$i pktgen test result has CRC errors." >> /Test/CYCLE_LOG/pktgen_test_fail.log fi done sync done } function TIME_STAMP() { if [ "$count" -eq "1" ] then cat /sys/class/rtc/rtc0/since_epoch > /Test/CYCLE_LOG/time_stamp_tmp.log echo "$count: 0" > /Test/CYCLE_LOG/time_stamp.log else declare -i Ntime=cat /sys/class/rtc/rtc0/since_epoch declare -i Otime=cat /Test/CYCLE_LOG/time_stamp_tmp.log echo "$count: expr $Ntime - $Otime" >> /Test/CYCLE_LOG/time_stamp.log echo $Ntime > /Test/CYCLE_LOG/time_stamp_tmp.log fi } function STRESS() { echo -e "Start Stress Test ..." sleep 3 $COMMAND & top -d 3 -n $CYCLE clear } function DMESG() { if [ ! -d "/Test/CYCLE_LOG/DMESG" ] then mkdir -p /Test/CYCLE_LOG/DMESG fi dmesg > /Test/CYCLE_LOG/DMESG/$count.log sync } function PING_TEST() { echo -e "Start PING Test ..." if [ ! -d "/Test/CYCLE_LOG/PING_TEST" ] then mkdir -p /Test/CYCLE_LOG/PING_TEST fi if [ ! -f "/Test/ping.config" ] then echo "Couldn't find ping.config on path /Test! Stop PING_TEST..." sleep 3 break else Ping_item=cat /Test/ping.config # <The ping.config shall be "name1_source-address1_destination-address1 name2_source-address2_destination-address2 ...".> for i in $Ping_item do ETH_NAME=echo $i | cut -d "_" -f 1 S_ADDRESS=echo $i | cut -d "_" -f 2 D_ADDRESS=echo $i | cut -d "_" -f 3 ifconfig $ETH_NAME $S_ADDRESS up sleep 3 echo -e "\n$ETH_NAME ping $D_ADDRESS test..." ping -I $ETH_NAME $D_ADDRESS -c $PING_COUNT >> /Test/ping.$ETH_NAME.[$D_ADDRESS].tmp & done fi while [ 1 ] do Buf=ps | grep -i eth | wc -l if [ "$Buf" = "1" ] then sleep 3 break fi done Buf_stress=ps | grep -i stress | wc -l if [ "$Buf_stress" -ne "1" ] then pkill stress fi Ping_tmp=ls /Test | grep -i .tmp for i in $Ping_tmp do if [ ! -f "/Test/CYCLE_LOG/PING_TEST/$i" ] then mkdir -p /Test/CYCLE_LOG/PING_TEST/$i fi j=echo $i | cut -d "." -f 2 cat /Test/$i >> /Test/CYCLE_LOG/PING_TEST/$i/$count.log if [ -z "cat /Test/$i | grep -i ttl=" ] then echo "COUNT=$count :" >> /Test/CYCLE_LOG/ping_test_fail.log echo "$i ping test failed." >> /Test/CYCLE_LOG/ping_test_fail.log cat /Test/$i >> /Test/CYCLE_LOG/ping_test_fail.log echo " " >> /Test/CYCLE_LOG/ping_test_fail.log ifconfig $j >> /Test/CYCLE_LOG/ping_test_fail.log echo " " >> /Test/CYCLE_LOG/ping_test_fail.log ethtool $j >> /Test/CYCLE_LOG/ping_test_fail.log echo "=====================================================" >> /Test/CYCLE_LOG/ping_test_fail.log fi rm -rf /Test/$i done sync sleep 1 } function SPECIAL_SCAN() { if [ ! -d "/Test/CYCLE_LOG/SPECIAL_SCAN" ] then mkdir -p /Test/CYCLE_LOG/SPECIAL_SCAN fi for i in echo $check_item do dmesg | grep -i $i | cut -d "]" -f 2 >> /Test/CYCLE_LOG/SPECIAL_SCAN/$count.log dmesg | grep -i $i >> /Test/CYCLE_LOG/special_scan.log done echo "=====================================================" >> /Test/CYCLE_LOG/special_scan.log if [ -f "/Test/CYCLE_LOG/SPECIAL_SCAN/1.log" ] then BUFFER=diff -q /Test/CYCLE_LOG/SPECIAL_SCAN/1.log /Test/CYCLE_LOG/SPECIAL_SCAN/$count.log if [ ! -z "$BUFFER" ] then echo "COUNT=$count :" >> /Test/CYCLE_LOG/SPECIAL_SCAN_fail.log diff /Test/CYCLE_LOG/SPECIAL_SCAN/1.log /Test/CYCLE_LOG/SPECIAL_SCAN/$count.log >> /Test/CYCLE_LOG/SPECIAL_SCAN_fail.log echo " " >> /Test/CYCLE_LOG/SPECIAL_SCAN_fail.log fi fi sync sleep 1 } function USB_SCAN() { echo -e "Scanning USB devices ..." if [ ! -d "/Test/CYCLE_LOG/USB_SCAN" ] then mkdir -p /Test/CYCLE_LOG/USB_SCAN fi lsusb -tvv >> /Test/CYCLE_LOG/USB_SCAN/$count.log lsusb -tvv >> /Test/CYCLE_LOG/usb_scan.log echo "=====================================================" >> /Test/CYCLE_LOG/usb_scan.log if [ -f "/Test/CYCLE_LOG/USB_SCAN/1.log" ] then BUFFER=diff -q /Test/CYCLE_LOG/USB_SCAN/1.log /Test/CYCLE_LOG/USB_SCAN/$count.log if [ ! -z "$BUFFER" ] then echo "COUNT=$count :" >> /Test/CYCLE_LOG/USB_SCAN_fail.log diff /Test/CYCLE_LOG/USB_SCAN/1.log /Test/CYCLE_LOG/USB_SCAN/$count.log >> /Test/CYCLE_LOG/USB_SCAN_fail.log echo " " >> /Test/CYCLE_LOG/USB_SCAN_fail.log fi fi #/Test/67b-usblist.sh >> /Test/CYCLE_LOG/tb_usblist.log sync sleep 1 } function DRIVER_INSTALL() { for i in /Test/*.ko do insmod $i done sleep 1 } function PCIE_SCAN() { echo -e "\nScanning PCIe devices ..." if [ ! -d "/Test/CYCLE_LOG/PCIE_SCAN" ] then mkdir -p /Test/CYCLE_LOG/PCIE_SCAN fi for i in lspci | sed 's/ /_/g' do DEVICE=echo $i | cut -d "_" -f 1 LNK_CAP_SPEED=lspci -s $DEVICE -vv | grep LnkCap: | cut -d ":" -f 2 | cut -d "," -f 2 LNK_CAP_WIDTH=lspci -s $DEVICE -vv | grep LnkCap: | cut -d ":" -f 2 | cut -d "," -f 3 LNK_STA_SPEED=lspci -s $DEVICE -vv | grep LnkSta: | cut -d ":" -f 2 | cut -d "," -f 1 LNK_STA_WIDTH=lspci -s $DEVICE -vv | grep LnkSta: | cut -d ":" -f 2 | cut -d "," -f 2 if [ ! -z "$LNK_CAP_SPEED" ] && [ ! -z "$LNK_STA_SPEED" ] then echo "$i : CAPABILITY=$LNK_CAP_SPEED, $LNK_CAP_WIDTH & STATUS=$LNK_STA_SPEED, $LNK_STA_WIDTH" >> /Test/CYCLE_LOG/PCIE_SCAN/$count.log echo "$i : CAPABILITY=$LNK_CAP_SPEED, $LNK_CAP_WIDTH & STATUS=$LNK_STA_SPEED, $LNK_STA_WIDTH" >> /Test/CYCLE_LOG/pcie_scan.log else echo "$i :" >> /Test/CYCLE_LOG/PCIE_SCAN/$count.log echo "$i :" >> /Test/CYCLE_LOG/pcie_scan.log fi done echo "Total count = lspci | wc -l" >> /Test/CYCLE_LOG/PCIE_SCAN/$count.log echo "Total count = lspci | wc -l" >> /Test/CYCLE_LOG/pcie_scan.log echo "=====================================================" >> /Test/CYCLE_LOG/pcie_scan.log if [ -f "/Test/CYCLE_LOG/PCIE_SCAN/1.log" ] then BUFFER=diff -q /Test/CYCLE_LOG/PCIE_SCAN/1.log /Test/CYCLE_LOG/PCIE_SCAN/$count.log if [ ! -z "$BUFFER" ] then echo "COUNT=$count :" >> /Test/CYCLE_LOG/PCIE_SCAN_fail.log diff /Test/CYCLE_LOG/PCIE_SCAN/1.log /Test/CYCLE_LOG/PCIE_SCAN/$count.log >> /Test/CYCLE_LOG/PCIE_SCAN_fail.log echo " " >> /Test/CYCLE_LOG/PCIE_SCAN_fail.log fi fi #/Test/64a-get_pcilist.sh >> /Test/CYCLE_LOG/tb_pcilist.log sync sleep 1 } function DISK_SCAN() { echo -e "Scanning Storage devices ..." if [ ! -d "/Test/CYCLE_LOG/DISK_SCAN" ] then mkdir -p /Test/CYCLE_LOG/DISK_SCAN fi for i in ls /sys/block/ do if [ -f "/sys/block/$i/device/model" ] then if [ ! -z "$(cat /sys/block/$i/device/model | grep -v Virtual)" ] then SIZE=$(expr cat /sys/block/$i/size \* 512) echo -e "$i : cat /sys/block/$i/device/model\t Size = $SIZE Byte" >> /Test/CYCLE_LOG/DISK_SCAN/$count.log echo -e "$i : cat /sys/block/$i/device/model\t Size = $SIZE Byte" >> /Test/CYCLE_LOG/disk_scan.log fi elif [ -f "/sys/block/$i/device/name" ] then SIZE=$(expr cat /sys/block/$i/size \* 512) echo -e "$i : cat /sys/block/$i/device/name\t Size = $SIZE Byte" >> /Test/CYCLE_LOG/DISK_SCAN/$count.log echo -e "$i : cat /sys/block/$i/device/name\t Size = $SIZE Byte" >> /Test/CYCLE_LOG/disk_scan.log fi done echo "=====================================================" >> /Test/CYCLE_LOG/disk_scan.log if [ -f "/Test/CYCLE_LOG/DISK_SCAN/1.log" ] then BUFFER=diff -q /Test/CYCLE_LOG/DISK_SCAN/1.log /Test/CYCLE_LOG/DISK_SCAN/$count.log if [ ! -z "$BUFFER" ] then echo "COUNT=$count :" >> /Test/CYCLE_LOG/DISK_SCAN_fail.log diff /Test/CYCLE_LOG/DISK_SCAN/1.log /Test/CYCLE_LOG/DISK_SCAN/$count.log >> /Test/CYCLE_LOG/DISK_SCAN_fail.log echo " " >> /Test/CYCLE_LOG/DISK_SCAN_fail.log fi fi #/Test/66a-get_hddlist.sh >> /Test/CYCLE_LOG/tb_hddlist.log sync sleep 1 } function MAC_SCAN() { echo -e "Scanning Ethernet port MAC address ..." if [ ! -d "/Test/CYCLE_LOG/MAC_SCAN" ] then mkdir -p /Test/CYCLE_LOG/MAC_SCAN fi for i in ls /sys/class/net/ do if [ -d "/sys/class/net/$i/device" ] then echo -e "$i\t : cat /sys/class/net/$i/address" >> /Test/CYCLE_LOG/MAC_SCAN/$count.log echo -e "$i\t : cat /sys/class/net/$i/address" >> /Test/CYCLE_LOG/mac_scan.log fi done echo "=====================================================" >> /Test/CYCLE_LOG/mac_scan.log if [ -f "/Test/CYCLE_LOG/MAC_SCAN/1.log" ] then BUFFER=diff -q /Test/CYCLE_LOG/MAC_SCAN/1.log /Test/CYCLE_LOG/MAC_SCAN/$count.log if [ ! -z "$BUFFER" ] then echo "COUNT=$count :" >> /Test/CYCLE_LOG/MAC_SCAN_fail.log diff /Test/CYCLE_LOG/MAC_SCAN/1.log /Test/CYCLE_LOG/MAC_SCAN/$count.log >> /Test/CYCLE_LOG/MAC_SCAN_fail.log echo " " >> /Test/CYCLE_LOG/MAC_SCAN_fail.log fi fi sync sleep 1 } function CLEAR_LOG() { if [ -d "/Test/CYCLE_LOG" ] then DATE=date | sed 's/ /_/g' | sed 's/:/_/g' | sed 's/__/_/g' mkdir -p /Test/$DATE mv /Test/CYCLE_LOG/* /Test/$DATE sync rm -rf /Test/CYCLE_LOG fi } function DEBUG() { if [ "$1" = "disk" ] || [ "$1" = "DISK" ] then DISK_SCAN echo "-------------------------------------------" cat /Test/CYCLE_LOG/DISK_SCAN/1.log echo "-------------------------------------------" rm -rf /Test/CYCLE_LOG/* elif [ "$1" = "pcie" ] || [ "$1" = "PCIE" ] then PCIE_SCAN echo "-------------------------------------------" cat /Test/CYCLE_LOG/PCIE_SCAN/1.log echo "-------------------------------------------" rm -rf /Test/CYCLE_LOG/* elif [ "$1" = "usb" ] || [ "$1" = "USB" ] then USB_SCAN echo "-------------------------------------------" cat /Test/CYCLE_LOG/USB_SCAN/1.log echo "-------------------------------------------" rm -rf /Test/CYCLE_LOG/* elif [ "$1" = "special" ] || [ "$1" = "SPECIAL" ] then SPECIAL_SCAN echo "-------------------------------------------" cat /Test/CYCLE_LOG/SPECIAL_SCAN/1.log echo "-------------------------------------------" rm -rf /Test/CYCLE_LOG/* elif [ "$1" = "mac" ] || [ "$1" = "MAC" ] then MAC_SCAN echo "-------------------------------------------" cat /Test/CYCLE_LOG/MAC_SCAN/1.log echo "-------------------------------------------" rm -rf /Test/CYCLE_LOG/* elif [ "$1" = "rw" ] || [ "$1" = "RW" ] then RW_TEST echo "-------------------------------------------" for i in $PARTITION do if [ -d "/$i" ] then cat /Test/CYCLE_LOG/RW_TEST/$i/result.log else echo "Partition: $i could not be tested!" fi done echo "-------------------------------------------" rm -rf /Test/CYCLE_LOG/* elif [ "$1" = "ping" ] || [ "$1" = "PING" ] then Ping_item=cat /Test/ping.config PING_TEST Log_list=ls /Test/CYCLE_LOG/PING_TEST for i in $Log_list do echo "-------------------------------------------" cat /Test/CYCLE_LOG/PING_TEST/$i/1.log echo "-------------------------------------------" done rm -rf /Test/CYCLE_LOG/* elif [ "$1" = "stress" ] || [ "$1" = "STRESS" ] then STRESS elif [ "$1" = "pktgen" ] || [ "$1" = "PKTGEN" ] then PKTGEN_TEST for i in cat /Test/CYCLE_LOG/ethernet_port.list do echo "-------------------------------------------" cat /Test/CYCLE_LOG/PKTGEN_TEST/$i/CRC_1.log cat /Test/CYCLE_LOG/PKTGEN_TEST/$i/PKTGEN_1.log echo "-------------------------------------------" done rm -rf /Test/CYCLE_LOG/* elif [ "$1" = "clean" ] || [ "$1" = "CLEAN" ] then CLEAR_LOG else mkdir -p /Test/CYCLE_LOG echo $1 > /Test/CYCLE_LOG/goal.tmp echo $2 > /Test/CYCLE_LOG/power_cycle.tmp fi } function POWER_CYCLE() { COMMAND=cat /Test/CYCLE_LOG/power_cycle.tmp if [ $COMMAND == poweroff ] then echo 0 > /sys/class/rtc/rtc0/wakealarm echo expr $(date +%s) + $delay > /sys/class/rtc/rtc0/wakealarm $COMMAND else $COMMAND fi } if [ -z "$1" ] then if [ -f "/Test/CYCLE_LOG/goal.tmp" ] && [ -f "/Test/CYCLE_LOG/power_cycle.tmp" ] then #DRIVER_INSTALL declare -i goal=cat /Test/CYCLE_LOG/goal.tmp declare -i count if [ ! -d "/Test/CYCLE_LOG" ] then mkdir -p /Test/CYCLE_LOG fi if [ ! -f "/Test/CYCLE_LOG/count.log" ] then echo 1 > /Test/CYCLE_LOG/count.log echo 1 > /Test/CYCLE_LOG/first.tmp fi count=cat /Test/CYCLE_LOG/count.log if [ ! -f "/Test/CYCLE_LOG/FLAG01" ] && [ ! -f "/Test/CYCLE_LOG/first.tmp" ] then echo "The $count times test is not finished correctly!" >> /Test/CYCLE_LOG/Warnning.log count+=1 echo $count > /Test/CYCLE_LOG/count.log else if [ -f "/Test/CYCLE_LOG/FLAG01" ] then rm -rf /Test/CYCLE_LOG/FLAG01 fi fi if [ ! -f "/Test/CYCLE_LOG/FLAG02" ] && [ ! -f "/Test/CYCLE_LOG/first.tmp" ] then if [ ! -z "ls /Test/CYCLE_LOG/PCIE_SCAN/ | grep $count.log" ] then count+=1 echo $count > /Test/CYCLE_LOG/count.log fi else if [ -f "/Test/CYCLE_LOG/FLAG02" ] then rm -rf /Test/CYCLE_LOG/FLAG02 fi fi sync if [ -f "/Test/CYCLE_LOG/first.tmp" ] then rm -rf /Test/CYCLE_LOG/first.tmp fi clear echo "******************************************************" echo "* *" echo "* System is starting the $count times cycle test ... " echo "* *" echo "******************************************************" read -p "Press [c] to stop testing! " -t 5 -n 1 stop if [ "$stop" = "c" ] then echo 0 > /sys/class/rtc/rtc0/wakealarm CLEAR_LOG exit 0 fi PCIE_SCAN DISK_SCAN #RW_TEST USB_SCAN MAC_SCAN SPECIAL_SCAN #PKTGEN_TEST #STRESS #PING_TEST DMESG TIME_STAMP if [ "$count" -ge "$goal" ] then CLEAR_LOG clear echo "******************************************************" echo "* *" echo "* The power cycle test has been finished! *" echo "* *" echo "******************************************************" read -p "Press any key to continue! " -n 1 continue else echo 1 > /Test/CYCLE_LOG/FLAG01 count+=1 echo $count > /Test/CYCLE_LOG/count.log echo 1 > /Test/CYCLE_LOG/FLAG02 sync clear echo "******************************************************" echo "* *" echo "* The expr $count - 1 times cycle test is completed ... " echo "* *" echo "******************************************************" sleep 1 POWER_CYCLE fi fi else declare -i count=1 if [ -z "$2" ] then DEBUG $1 else DEBUG $1 $2 fi fi 帮忙将这个脚本优化一下,我只是用来计数开关机的次数,只要开机能显示执行了多少次的效果,其他多余的部分请帮忙删除

为下面每一行代码添加注释:#include "stm32f10x.h" void RCC_Configuration(void) { /* Enable GPIOA, GPIOC and AFIO clocks / RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE); / Enable SYSCFG clock / RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); } void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; / Configure PA0 pin as input floating / GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); / Configure PC13 pin as output push-pull / GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); } void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure / Configure the NVIC Preemption Priority Bits / NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); / Enable the EXTI0 Interrupt / NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } void EXTI_Configuration(void) { EXTI_InitTypeDef EXTI_InitStructure; / Configure EXTI Line0 to generate an interrupt on falling edge / EXTI_InitStructure.EXTI_Line = EXTI_Line0; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); / Connect EXTI Line0 to PA0 pin / GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); } void SysTick_Configuration(void) { / Configure SysTick to generate an interrupt every 1ms / if (SysTick_Config(SystemCoreClock / 1000)) { / Capture error / while (1); } } void Delay(__IO uint32_t nTime) { / Wait for nTime millisecond / TimingDelay = nTime; while (TimingDelay != 0); } void TimingDelay_Decrement(void) { if (TimingDelay != 0x00) { TimingDelay--; } } int main(void) { RCC_Configuration(); GPIO_Configuration(); NVIC_Configuration(); EXTI_Configuration(); SysTick_Configuration(); / Infinite loop / while (1) { / Toggle PC13 LED every 500ms / GPIOC->ODR ^= GPIO_Pin_13; Delay(500); } } void EXTI0_IRQHandler(void) { / Check if PA0 button is pressed / if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == RESET) { / Reset MCU / NVIC_SystemReset(); } / Clear EXTI Line0 pending bit */ EXTI_ClearITPendingBit(EXTI_Line0); }

帮我改错一下 import json import pandas as pd import requests data1 = pd.read_excel('C:\\Users\\Administrator\\PycharmProjects\\pythonProject10\\用户信息.xls') head = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0', 'cookie': 'UM_distinctid=17fed3bf7296d4-01aeae5d80942c-1f343371-1fa400-17fed3bf72a1163; __client_id=2ec00f15870204623a78bf6f63f7c99a85774791; CNZZDATA5476811=cnzz_eid%3D1690978113-1633007100-https%253A\%252F\%252Fcn.bing.com\%252F%26ntime%3D1651749421; _uid=0; login_referer=https%3A\%2F\%2Fwww.luogu.com.cn\%2Fuser\%2F387021' } data = requests.get("https://www.luogu.com.cn/fe/api/contest/scoreboard/68651?page=1", headers=head) data.encoding = 'utf-8' json_object = json.loads(data.text) g = dict() rank = dict() ID = {'U197159': 'A', 'U196210': 'B', 'U215461': 'C', 'U197241': 'D', 'U197281': 'E', 'U215474': 'F', 'U197124': 'G', 'U215470': 'H'} idx = 1 for i in json_object['scoreboard']['result']: g[i['user']['name']] = [] rank[i['user']['name']] = idx idx = idx + 1 for j in i['details']: if i['details'][j]['score'] >= 0: g[i['user']['name']].append(ID[j]) for i in range(33): if data1.loc[i, '洛谷账号'] in rank.keys(): data1.loc[i, '排名'] = rank[data1.loc[i, '洛谷账号']] for j in g[data1.loc[i, '洛谷账号']]: data1.loc[i, j] = 'AC' else: data1.loc[i, '排名'] = -1 data1.to_excel('C:\\Users\\Administrator\\PycharmProjects\\pythonProject10\\result.xls', index=0)

%% 船舶航线优化主程序 clear; clc; close all; %% 参数设置 % 船舶参数(Suezmax型) ship.L_pp = 228.9; % 垂线间长(m) ship.B = 32.26; % 船宽(m) ship.T = 14.471; % 吃水(m) ship.Cb = 0.803; % 方形系数 ship.D = 8.5; % 螺旋桨直径(m) ship.sfoc = 104; % 燃油消耗率(g/kWh) ship.V = 12; % 设计航速(kn) ship.V_max = 16; % 最大航速(kn) ship.V_min = 10; % 最小航速(kn) ship.P_max = 32000; % 最大主机功率(kW) ship.rho_sea = 1026; % 海水密度(kg/m^3) ship.rho_air = 1.225; % 空气密度(kg/m^3) ship.A_T = 1918; % 水面上的最大横向面积(m^2) % 算法参数 population_size = 50; % 种群大小 max_generations = 100; % 最大迭代次数 pc = 0.8; % 交叉概率 pm = 0.1; % 变异概率 T0 = 100; % 初始温度 alpha = 0.95; % 退火系数 start_time = datetime(2025,2,12,18,0,0); % 航线参数 start_port = [35.2391, 119.7921]; % 日照港 end_port = [-28.5202, 114.3272]; % 杰拉尔顿港 max_segments = 30; % 最大航段数 lat_range = [-30, 55]; lon_range = [110, 160]; %% 气象数据加载与预处理 % 读取NetCDF文件 op_ncfile = 'C:\Users\dell\Downloads\41c65edbd5a653750e1d93b2a34fe6a8.nc'; wv_ncfile = 'C:\Users\dell\Downloads\abbf6737917f8802584d2b89ac9cf3ca.nc'; % 获取维度信息 op_lon = ncread(op_ncfile, 'longitude'); % 风场文件经度向量 op_lat = ncread(op_ncfile, 'latitude'); % 风场文件纬度向量 time = ncread(op_ncfile, 'valid_time'); % 时间(小时数,从1900-01-01起) wv_lon = ncread(wv_ncfile, 'longitude'); % 浪场文件经度向量 wv_lat = ncread(wv_ncfile, 'latitude'); % 浪场文件纬度向量 % 正确时间转换(基于NC文件元数据) time_ref = datetime(1970,1,1, 'TimeZone', 'UTC'); % 明确指定UTC时区 date_vec = time_ref + seconds(time); % 保持UTC时区 % 提取2025年1-2月数据 start_date = datetime(2025,2,12, 'TimeZone', 'UTC'); end_date = datetime(2025,2,27,23,59,59, 'TimeZone', 'UTC'); time_mask = (date_vec >= start_date) & (date_vec <= end_date); time_idx = find(time_mask); % 读取气象变量(优化维度处理) % 注意:NetCDF维度顺序通常为(longitude, latitude, time) u10 = permute(ncread(op_ncfile, 'u10', [1,1,1], [Inf, Inf, Inf]), [2,1,3]); % 调整为(lat,lon,time) v10 = permute(ncread(op_ncfile, 'v10', [1,1,1], [Inf, Inf, Inf]), [2,1,3]); swh = permute(ncread(wv_ncfile, 'swh', [1,1,1], [Inf, Inf, Inf]), [2,1,3]); cdww = permute(ncread(wv_ncfile, 'cdww', [1,1,1], [Inf, Inf, Inf]), [2,1,3]); % 创建纬度-经度网格 [LonGrid, LatGrid] = meshgrid(op_lon, op_lat); % 构建气象数据结构体 weather_data = struct(... 'op_lon', op_lon, ... % 经度向量 [nLon×1] 'op_lat', op_lat, ... % 纬度向量 [nLat×1] 'wv_lon', wv_lon, ... % 经度向量 [nLon×1] 'wv_lat', wv_lat, ... % 纬度向量 [nLat×1] 'LonGrid', LonGrid, ... % 经度网格 [nLat×nLon] 'LatGrid', LatGrid, ... % 纬度网格 [nLat×nLon] 'time', date_vec(time_idx), ... % 时间向量 [nTime×1] 'u10', u10(:,:,time_idx), ... % 风速U分量 [nLat×nLon×nTime] 'v10', v10(:,:,time_idx), ... % 风速V分量 [nLat×nLon×nTime] 'swh', swh(:,:,time_idx), ... % 有效波高 [nLat×nLon×nTime] 'cdww', cdww(:,:,time_idx)); % 波浪阻力系数 [nLat×nLon×nTime] %% 初始化种群 population = initialize_population(population_size, start_port, end_port, max_segments, lat_range, lon_range); %% 混合遗传算法主循环 best_fitness = inf; best_route = []; best_fuel = Inf; best_time = Inf; fitness_history = zeros(max_generations, 1); temperature = T0; for gen = 1:max_generations % 计算适应度 fitness = zeros(population_size, 1); fuel_consumptions = zeros(population_size, 1); total_times = zeros(population_size, 1); for i = 1:population_size [fitness(i), fuel_consumptions(i), total_times(i)] = calculate_fitness(population{i}, ship, weather_data, start_time); end % 记录最佳个体 [min_fitness, idx] = min(fitness); current_fuel = fuel_consumptions(idx); current_time = total_times(idx); if min_fitness < best_fitness best_fitness = min_fitness; best_route = population{idx}; best_fuel = current_fuel; best_time = current_time; end fitness_history(gen) = best_fitness; % 选择操作 selected = tournament_selection(population, fitness, population_size/2); % 交叉操作 offspring = hybrid_crossover(selected, pc, start_port, end_port); % 变异操作 offspring = mutation(offspring, pm, lat_range, lon_range); % 合并种群 combined_population = [population; offspring]; offspring_fitness = zeros(length(offspring), 1); for i = 1:length(offspring) offspring_fitness(i) = calculate_fitness(offspring{i}, ship, weather_data, start_time); end combined_fitness = [fitness; offspring_fitness]; % 模拟退火选择 population = simulated_annealing_selection(combined_population, combined_fitness, population_size, temperature); % 更新温度 temperature = alpha * temperature; % 显示进度 fprintf('Generation %d: Fitness=%.2f, Fuel=%.2fkg, Time=%.2fh (Current) | Best: Fitness=%.2f, Fuel=%.2fkg, Time=%.2fh\n',... gen, min_fitness, current_fuel, current_time, best_fitness, best_fuel, best_time); % 更新温度 temperature = alpha * temperature; end %% 结果可视化 plot_route(best_route, start_port, end_port, weather_data); figure; plot(1:max_generations, fitness_history); xlabel('Generation'); ylabel('Best Fitness'); title('Convergence Curve'); %% 初始化种群函数 function population = initialize_population(pop_size, start_port, end_port, max_segments, lat_range, lon_range) population = cell(pop_size, 1); % 初始化为列向量 for i = 1:pop_size num_segments = randi([2, max_segments]); route = zeros(num_segments+1, 2); route(1,:) = start_port; route(end,:) = end_port; % 生成中间点 for j = 2:num_segments while true new_lat = lat_range(1) + (lat_range(2)-lat_range(1))*rand(); new_lon = lon_range(1) + (lon_range(2)-lon_range(1))*rand(); if ~isequal([new_lat, new_lon], start_port) && ~isequal([new_lat, new_lon], end_port) route(j,:) = [new_lat, new_lon]; break; end end end population{i} = route; % 按经度排序中间点,确保东向航行 route(2:end-1,:) = sortrows(route(2:end-1,:), 2); end end %% 适应度计算函数 function [fitness, total_fuel, total_time] = calculate_fitness(route, ship, weather_data, start_time) % 检查路径有效性 if isempty(route) || size(route,1) < 2 || any(isnan(route(:))) fitness = Inf; return; end total_distance = 0; total_time = 0; total_fuel = 0; % 计算每个航段的参数 for i = 1:size(route,1)-1 % 计算航段距离 (大圆距离) [dist, ~] = lldistkm(route(i,:), route(i+1,:)); if isnan(dist) % 如果距离计算失败 fitness = Inf; return; end total_distance = total_distance + dist; % 获取航段中点位置和时间的气象数据 mid_point = [(route(i,1)+route(i+1,1))/2, (route(i,2)+route(i+1,2))/2]; segment_time = start_time + seconds(total_time*3600); segment_time.TimeZone = 'UTC'; % 强制设置时区 % 双线性插值获取气象数据 [u10, v10, swh, cdww] = get_weather_data(mid_point, segment_time, weather_data); % 计算航向角 (0-360度,正北为0) heading = calculate_heading(route(i,:), route(i+1,:)); % 计算相对风向和波向 wind_dir = atan2d(v10, u10); % 风向(度) wind_speed = sqrt(u10^2 + v10^2); rel_wind_angle = wrapTo360(wind_dir - heading); % 计算船舶实际速度 (考虑风浪影响) [V_actual, fuel_consumption] = calculate_ship_performance(ship, wind_speed, rel_wind_angle, swh, cdww); % 计算航段时间和燃油消耗 segment_time_hours = dist / (V_actual * 1.852); % 海里转公里 total_time = total_time + segment_time_hours; total_fuel = total_fuel + fuel_consumption * segment_time_hours; % 添加航速有效性检查 if V_actual <= 0 || isnan(V_actual) fitness = Inf; return; end % 添加时间计算保护 segment_time_hours = max(0, dist / (V_actual * 1.852)); end % 适应度函数 (加权和) fuel_weight = 0.6; % 燃油消耗权重 fitness = fuel_weight * total_fuel + (1-fuel_weight) * total_time; fprintf('Segment %d: V=%.2fkn, Fuel=%.2fkg/h, Time=%.2fh\n',... i, V_actual, fuel_consumption, segment_time); end %% 气象数据获取函数 function [u10, v10, swh, cdww] = get_weather_data(point, time, weather_data) % 双线性插值获取气象数据 % 风场数据 (0.25°分辨率) [u10, v10] = bilinear_interp(point(1), point(2), time, ... weather_data.op_lat, weather_data.op_lon, weather_data.time, ... weather_data.u10, weather_data.v10); % 浪场数据 (0.5°分辨率) [swh, cdww] = bilinear_interp(point(1), point(2), time, ... weather_data.wv_lat, weather_data.wv_lon, weather_data.time, ... weather_data.swh, weather_data.cdww); end %% 双线性插值法函数 function [varargout] = bilinear_interp(lat, lon, time, lat_grid, lon_grid, time_grid, varargin) % 通用双线性插值函数 varargout = cell(1, nargin-6); % 找到最近的4个空间点和2个时间点 [lat_idx, lon_idx, time_idx, weights] = find_nearest_points(lat, lon, time, lat_grid, lon_grid, time_grid); for i = 1:length(varargin) var = varargin{i}; % 空间插值 spatial_interp = (1-weights(1))*(1-weights(2)) * var(lat_idx(1), lon_idx(1), time_idx(1)) + ... (1-weights(1))*weights(2) * var(lat_idx(1), lon_idx(2), time_idx(1)) + ... weights(1)*(1-weights(2)) * var(lat_idx(2), lon_idx(1), time_idx(1)) + ... weights(1)*weights(2) * var(lat_idx(2), lon_idx(2), time_idx(1)); % 时间插值 if length(time_idx) > 1 spatial_interp2 = (1-weights(1))*(1-weights(2)) * var(lat_idx(1), lon_idx(1), time_idx(2)) + ... (1-weights(1))*weights(2) * var(lat_idx(1), lon_idx(2), time_idx(2)) + ... weights(1)*(1-weights(2)) * var(lat_idx(2), lon_idx(1), time_idx(2)) + ... weights(1)*weights(2) * var(lat_idx(2), lon_idx(2), time_idx(2)); varargout{i} = (1-weights(3)) * spatial_interp + weights(3) * spatial_interp2; else varargout{i} = spatial_interp; end end end %% 最近的网格点寻找函数 function [lat_idx, lon_idx, time_idx, weights] = find_nearest_points(lat, lon, time, lat_grid, lon_grid, time_grid) % 找到最近的网格点和插值权重 % 纬度 [~, lat_idx(1)] = min(abs(lat_grid - lat)); if lat_grid(lat_idx(1)) < lat lat_idx(2) = min(lat_idx(1)+1, length(lat_grid)); else lat_idx(2) = max(lat_idx(1)-1, 1); end weights(1) = (lat - lat_grid(lat_idx(1))) / (lat_grid(lat_idx(2)) - lat_grid(lat_idx(1))); % 经度 [~, lon_idx(1)] = min(abs(lon_grid - lon)); if lon_grid(lon_idx(1)) < lon lon_idx(2) = min(lon_idx(1)+1, length(lon_grid)); else lon_idx(2) = max(lon_idx(1)-1, 1); end weights(2) = (lon - lon_grid(lon_idx(1))) / (lon_grid(lon_idx(2)) - lon_grid(lon_idx(1))); % 时间 time_diff = abs(time_grid - time); [~, time_idx(1)] = min(time_diff); if time_grid(time_idx(1)) < time time_idx(2) = min(time_idx(1)+1, length(time_grid)); else time_idx(2) = max(time_idx(1)-1, 1); end if length(time_idx) > 1 weights(3) = seconds(time - time_grid(time_idx(1))) / seconds(time_grid(time_idx(2)) - time_grid(time_idx(1))); end end %% 角度计算函数 function heading = calculate_heading(point1, point2) % 计算两点之间的航向角 (0-360度,正北为0) lat1 = deg2rad(point1(1)); lon1 = deg2rad(point1(2)); lat2 = deg2rad(point2(1)); lon2 = deg2rad(point2(2)); dLon = lon2 - lon1; y = sin(dLon) * cos(lat2); x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dLon); heading = wrapTo360(rad2deg(atan2(y, x))); end %% 船舶油耗及速度计算函数 function [V_actual, fuel_consumption] = calculate_ship_performance(ship, wind_speed, rel_wind_angle, swh, cdww) % 计算考虑风浪影响的船舶实际速度和燃油消耗 % 计算风阻力 R_wind = 0.5 * ship.rho_air * wind_speed^2 * ship.A_T * abs(cosd(rel_wind_angle)); % 计算波浪阻力 (简化模型) R_wave = 0.5 * ship.rho_sea * (swh/2)^2 * ship.B * ship.T * (1 + 4 * (ship.T/ship.L_pp)^2); % 计算静水阻力 R_water = 0.5 * ship.rho_sea * ship.L_pp * ship.B * cdww; V_knots = ship.V; % 初始使用设计航速 V_ms = V_knots * 0.5144; % 节转m/s % 总静水阻力 R_total = R_wind + R_wave + R_water; % 考虑风浪影响的速度损失 (经验公式) speed_loss = 0.05 * (swh/4) + 0.02 * wind_speed/10; V_actual = max(ship.V_min, ship.V * (1 - speed_loss)); % 计算燃油消耗 (简化模型) V_actual_ms = V_actual * 0.5144; % 节转m/s power_required = R_total * V_actual_ms / 0.6; % 推进效率0.6 fuel_consumption = power_required * ship.sfoc / 1e6; % kg/h end %% 选择算子 function selected = tournament_selection(population, fitness, num_selected) % 锦标赛选择 selected = cell(num_selected, 1); for i = 1:num_selected % 随机选择2个个体进行竞争 candidates = randperm(length(population), 2); if fitness(candidates(1)) < fitness(candidates(2)) selected{i} = population{candidates(1)}; else selected{i} = population{candidates(2)}; end end end %% 交叉算子 function offspring = hybrid_crossover(parents, pc, start_port, end_port) offspring = cell(length(parents), 1); % 确保子代数量与父代相同 i = 1; while i <= length(parents) if i+1 > length(parents) % 处理奇数情况:最后一个父代直接复制 offspring{i} = parents{i}; break; end if rand() < pc parent1 = parents{i}; parent2 = parents{i+1}; % 检查父代路径有效性 if size(parent1,1) < 3 || size(parent2,1) < 3 offspring{i} = parent1; offspring{i+1} = parent2; i = i + 2; continue; end min_len = min(size(parent1,1), size(parent2,1)); if min_len <= 2 offspring{i} = parent1; offspring{i+1} = parent2; i = i + 2; continue; end % 随机交叉点 crossover_point = randi([2, min_len-1]); % 生成子代 child1 = [parent1(1:crossover_point,:); parent2(crossover_point+1:end,:)]; child2 = [parent2(1:crossover_point,:); parent1(crossover_point+1:end,:)]; % 确保子代有效性 child1(1,:) = start_port; child1(end,:) = end_port; child2(1,:) = start_port; child2(end,:) = end_port; offspring{i} = child1; offspring{i+1} = child2; else % 不交叉时直接复制父代 offspring{i} = parents{i}; offspring{i+1} = parents{i+1}; end i = i + 2; % 移动到下一对父代 end end %% 变异算子 function mutated_pop = mutation(population, pm, lat_range, lon_range) mutated_pop = cell(size(population)); for i = 1:length(population) if rand() < pm route = population{i}; if size(route,1) <= 2 mutated_pop{i} = route; continue; end idx = randi([2, size(route,1)-1]); % 随机选择中间点 new_lat = lat_range(1) + (lat_range(2)-lat_range(1))*rand(); new_lon = lon_range(1) + (lon_range(2)-lon_range(1))*rand(); route(idx,:) = [new_lat, new_lon]; mutated_pop{i} = route; else mutated_pop{i} = population{i}; end end end %% 模拟退火 function new_population = simulated_annealing_selection(population, fitness, pop_size, temperature) % 模拟退火选择 [~, sorted_idx] = sort(fitness); new_population = cell(pop_size, 1); % 保留最优个体 new_population{1} = population{sorted_idx(1)}; % 对其他个体进行退火选择 for i = 2:pop_size % 随机选择两个个体 candidates = randperm(length(population), 2); delta = fitness(candidates(2)) - fitness(candidates(1)); % 接受概率 if delta < 0 new_population{i} = population{candidates(2)}; else p = exp(-delta / temperature); if rand() < p new_population{i} = population{candidates(2)}; else new_population{i} = population{candidates(1)}; end end end end %% 绘图函数 function plot_route(route, start_port, end_port, weather_data) % 绘制优化后的航线 figure; % 绘制地图背景 worldmap([-40 60], [100 170]); load coastlines; plotm(coastlat, coastlon); % 绘制航线 plotm(route(:,1), route(:,2), 'r-o', 'LineWidth', 2); plotm(start_port(1), start_port(2), 'go', 'MarkerSize', 10, 'MarkerFaceColor', 'g'); plotm(end_port(1), end_port(2), 'bo', 'MarkerSize', 10, 'MarkerFaceColor', 'b'); % 添加标题和图例 title('Optimized Ship Route from Dalian to Gladstone'); legend('Route', 'Dalian', 'Gladstone', 'Location', 'best'); % 添加气象数据示例 (可选) hold on; [LON, LAT] = meshgrid(weather_data.op_lon, weather_data.op_lat); quiverm(LAT(1:5:end,1:5:end), LON(1:5:end,1:5:end), ... weather_data.u10(1:5:end,1:5:end,1), weather_data.v10(1:5:end,1:5:end,1), 'k'); hold off; end %% 距离及角度计算函数 function [km, arc] = lldistkm(latlon1, latlon2) % 计算两点之间的大圆距离 lat1 = latlon1(1); lon1 = latlon1(2); lat2 = latlon2(1); lon2 = latlon2(2); R = 6371; % 地球半径(km) lat1 = deg2rad(lat1); lon1 = deg2rad(lon1); lat2 = deg2rad(lat2); lon2 = deg2rad(lon2); delta_lat = lat2 - lat1; delta_lon = lon2 - lon1; a = sin(delta_lat/2)^2 + cos(lat1) * cos(lat2) * sin(delta_lon/2)^2; c = 2 * atan2(sqrt(a), sqrt(1-a)); km = R * c; arc = rad2deg(c); end 那你把这个代码修改一下发给我

/** * @file ADC/ADC_Temperature/main.h * @brief Header for main.c module * @author ChipSea MCU Group * @version V1.0.0 * @date * @copyright CHIPSEA TECHNOLOGIES (SHENZHEN) CORP. * @note *
© COPYRIGHT 2022 ChipSea
* * * @verbatim ----------------------- How to used this project--------------------------- * @par Example Description This example shows how to configure ADC for temperature detect. User should combine manual to learn how to calculate actual voltage. - Test steps a. Rebuild the project and load the image into target memory. b. Connect harware to the target board. c. Run the example, SDADC start sample every 1000ms. * @endverbatim * */ /***************************************************************************** * @includes *****************************************************************************/ #include "main.h" /***************************************************************************** * @definitions *****************************************************************************/ #define T0K_FLASH_BASE 0x1FFFFC34 #define DATAT0_HIGH_FLASH_BASE 0x1FFFFC3C #define DATAT0_LOW_FLASH_BASE 0x1FFFFC38 /***************************************************************************** * @variables *****************************************************************************/ extern uint32_t SystemCoreClock; static volatile uint32_t timing_delay; volatile uint32_t data_symbol = 0; /***************************************************************************** * @functions *****************************************************************************/ void delay(volatile uint32_t value); uint32_t adc_data_convert(uint32_t data); /**@brief Main program. * * @param[in] None. * * @return None. */ int main(void) { uint32_t data_T0 = 0; uint32_t T0_K = 0; uint32_t adc_data = 0; double adc_temp = 0; adc_config_t adc_config; pga_config_t pga_config; vref_config_t vref_config; /* Init USART1 */ cs_eval_com_init(); printf("ADC temperature example!\r\n"); /* Interrupt every 1ms */ SysTick_Config(SystemCoreClock / 1000); /* Clock enable */ __RCU_AHB_CLK_ENABLE(RCU_AHB_PERI_GPIOA); __RCU_APB1_CLK_ENABLE(RCU_APB1_PERI_ADADC); __RCU_FUNC_ENABLE(LRC2_CLK); /* adc clock = LRC2(1.024MHz) */ rcu_adcclk_config(RCU_ADCLK_CFG_LRC2); if(rcu_lrc2_stabilization_wait() == ERROR) { printf("LRC2 not ready\r\n"); /* Stop here */ while(1); } else { printf("LRC2 ready\r\n"); } adc_def_init(ADC1); /* Step1:Inner-vref must soft start */ adc_vref_soft_start(ADC1); /* Step2:Config AD-ADC */ adc_config_struct_init(&adc_config); adc_config.abandont_num = ADC_ABANDONT_DATA_4; adc_config.average_num = ADC_AVERAGE_NUM_16; adc_config.convert_mode = ADC_SINGLE_CONVERT_MODE; adc_config.data_rate = ADC_DATARATE_MODE_7; adc_config.gain_select = ADC_GAIN_2; adc_config.ovrwr_mode = ADC_DATA_OVER_WRITE_NONE; adc_config.power_mode = ADC_HIGH_POWER_MODE; adc_config.rst_num = ADC_RST_CYCLE_4; adc_config.setup_time = ADC_SETUP_TIME_CYCLE_2048; adc_init(ADC1, &adc_config); /* Step3:Config PGA */ pga_config.din_select = PGA_PMOS; pga_config.pga1_enable = DISABLE; pga_config.pga_chop = PGA_CHOP_DIV_256; pga_config.pga_gain = ADC_PGA_GAIN_1; adc_pga_init(&pga_config); /* Step4:Config VREF */ vref_config.buffer_enable = ENABLE; vref_config.driver = ADC_VREF_DRV_MAX_5MA; vref_config.ref_select = ADC_REF_SELECT_INNER_2P048V; vref_config.vref_enable = ENABLE; adc_vref_init(&vref_config); /* Step5:Filter select */ adc_digital_filter_select(ADC1, ADC_FILTER_LOW_LATENCY); /* Step6:trigger config -- soft */ adc_trigger_config(ADC1, ADC_TRIGGER_MODE_SOFT, ADC_TRIGGER_SRC_RTC); adc_chop_freq_set(ADC1,ADC_CHOP_DIV_256); adc_channel_config(ADC1, ADC_INPUT_CHANNEL_8, ADC_INPUT_CHANNEL_8); /* FLASH data code handle */ T0_K = *(__IO uint32_t *)T0K_FLASH_BASE; T0_K = (T0_K & 0x000000FF) | ((T0_K & 0x00FF0000)>>8); T0_K = (T0_K - 27315); data_T0 = (((*(__IO uint32_t *)DATAT0_HIGH_FLASH_BASE) & 0x000000FF) <<16) | \ ((*(__IO uint32_t *)DATAT0_LOW_FLASH_BASE) & 0x000000FF) | \ (((*(__IO uint32_t *)DATAT0_LOW_FLASH_BASE) & 0x00FF0000 )>>8); while(1) { adc_conversion_start(ADC1); while(!__ADC_FLAG_STATUS_GET(ADC1, ADC_FLAG_DATA_EOCH)); adc_data = adc_data_convert(__ADC_CONV_VALUE_GET(ADC1)); printf("ADC temp testúAdc value is %06x\r\n",adc_data); if(adc_data >= data_T0) { adc_temp = (double)(adc_data - data_T0) * 2048 / 8388608 + (double)T0_K/100; } else { adc_temp = (double)T0_K/100 - (double)(data_T0 - adc_data) * 2048 / 8388608; } printf("tempertureúAdc value is %f\r\n",adc_temp); printf("\r\n\n\n"); delay(1000); } } uint32_t adc_data_convert(uint32_t adc_data) { if(adc_data & 0x800000) { adc_data = (~(adc_data & 0xFFFFFF))+1; adc_data &= 0x00FFFFFF; } else { adc_data &= 0x00FFFFFF; } return adc_data; } /**@brief Inserts a delay time. * * @param[in] nTime: specifies the delay time length, in milliseconds. * * @return None. */ void delay(volatile uint32_t value) { timing_delay = value; while(timing_delay != 0); } /**@brief Decrements the timing_delay variable. * * @param[in] None. * * @return None. */ void timing_delay_decrement(void) { if (timing_delay != 0x00) { timing_delay--; } } #ifdef USE_FULL_ASSERT /**@brief Report the assert error. * * @param[in] file: pointer to the source file name. * * @param[in] line: error line source number. * * @return None. */ void assert_failed(uint8_t* file, uint32_t line) { while(1); } #endif

#include "ATD5984.h" void ATD5984_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_SetBits(GPIOC, GPIO_Pin_12); //控制步进电机B的ATD5984的SLEEP引脚 GPIO_SetBits(GPIOC, GPIO_Pin_13); //控制步进电机A的ATD5984的DIR引脚 //SET顺时针 GPIO_SetBits(GPIOC, GPIO_Pin_14); //控制步进电机B的ATD5984的DIR引脚 GPIO_SetBits(GPIOD, GPIO_Pin_2); //控制步进电机A的ATD5984的SLEEP引脚 } //定时器3的通道3通道4:PC8 PC9 void STEP12_PWM_Init(u16 arr, u16 psc) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); TIM_TimeBaseInitStructure.TIM_Period = arr; //自动重装载值 TIM_TimeBaseInitStructure.TIM_Prescaler = psc; //预分频值 TIM_TimeBaseInitStructure.TIM_ClockDivision = 0; //时钟分割 TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数 TIM_TimeBaseInit(TIM8, &TIM_TimeBaseInitStructure); TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //TIM脉冲宽度调制模式2 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //TIM输出比较极性高 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能 TIM_OCInitStructure.TIM_Pulse = 50; //待装入捕获比较寄存器的脉冲值 TIM_OC3Init(TIM8, &TIM_OCInitStructure); TIM_OC3PreloadConfig(TIM8, TIM_OCPreload_Enable); //通道预装载使能 TIM_OC4Init(TIM8, &TIM_OCInitStructure); TIM_OC4PreloadConfig(TIM8, TIM_OCPreload_Enable); //通道预装载使能 TIM_ARRPreloadConfig(TIM8, ENABLE); //使能预加载 TIM_CtrlPWMOutputs(TIM8, ENABLE); TIM_Cmd(TIM8, ENABLE); //使能定时器 } 这是已有的电机驱动代码,为什么还要配置A0和A1

大家在看

recommend-type

polkit-0.96-11.el6_10.2.x86_64.rpm离线升级包下载(Polkit漏洞CentOS6修复升级包)

CentOS 6.X版本专用 升级命令: rpm -Uvh polkit-0.96-11.el6_10.2.x86_64.rpm 或yum localinstall -y polkit-0.96-11.el6_10.2.x86_64.rpm 参考链接: https://ubuntu.com/security/CVE-2021-4034 https://access.redhat.com/security/cve/CVE-2021-4034 https://security-tracker.debian.org/tracker/CVE-2021-4034 https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt
recommend-type

ray-optics:光学系统的几何光线追踪

射线光学 安装 要使用pip安装rayoptics ,请使用 > pip install rayoptics 或者,可以使用conda从conda - forge渠道安装rayoptics > conda install rayoptics --channel conda-forge 文献资料 射线光学位于“ 成像光学设计和分析工具 RayOptics是一个Python几何光学和成像光学库。 它为分析成像和相干光学系统提供了几何射线追踪基础。 在此基础上提供了许多标准的几何分析选项,例如横向射线和波前像差分析。 y-ybar图和镜头布局视图中近轴光线的图形编辑也支持光学系统的近轴布局。 支持导入Zemax .zmx和CODEV .seq文件。 RayOptics可用于Python脚本,Python和IPython外壳,Jupyter笔记本以及基于Qt的图形用户界面应用程序中。 笔记 该项
recommend-type

微信qq浏览器打开提示

自己的域名总是被举报,变红?搞一个遮罩呗! 跳转浏览器提示就OK了,亲测在PHP网站完美使用。 1.上传插件整个文件夹到/public目录。得到:/public/WxqqJump 2.修改/public/index.php文件。在第一行&lt;?php下新增代码 当不再使用或者需要临时关闭跳转时,只需//注销该行代码即可。
recommend-type

扑翼无人机准定常空气动力学及控制Matlab代码.rar

1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 5.作者介绍:某大厂资深算法工程师,从事Matlab算法仿真工作10年;擅长智能优化算法、神经网络预测、信号处理、元胞自动机等多种领域的算法仿真实验,更多仿真源码、数据集定制私信+。
recommend-type

Pixhawk4飞控驱动.zip

已安装成功

最新推荐

recommend-type

spring-webflux-5.0.0.M5.jar中文文档.zip

1、压缩文件中包含: 中文文档、jar包下载地址、Maven依赖、Gradle依赖、源代码下载地址。 2、使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 3、特殊说明: (1)本文档为人性化翻译,精心制作,请放心使用; (2)只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; (3)不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 4、温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件。 5、本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册。
recommend-type

美国国际航空交通数据分析报告(1990-2020)

根据给定的信息,我们可以从中提取和分析以下知识点: 1. 数据集概述: 该数据集名为“U.S. International Air Traffic data(1990-2020)”,记录了美国与国际间航空客运和货运的详细统计信息。数据集涵盖的时间范围从1990年至2020年,这说明它包含了长达30年的时间序列数据,对于进行长期趋势分析非常有价值。 2. 数据来源及意义: 此数据来源于《美国国际航空客运和货运统计报告》,该报告是美国运输部(USDOT)所管理的T-100计划的一部分。T-100计划旨在收集和发布美国和国际航空公司在美国机场的出入境交通报告,这表明数据的权威性和可靠性较高,适用于政府、企业和学术研究等领域。 3. 数据内容及应用: 数据集包含两个主要的CSV文件,分别是“International_Report_Departures.csv”和“International_Report_Passengers.csv”。 a. International_Report_Departures.csv文件可能包含了以下内容: - 离港航班信息:记录了各航空公司的航班号、起飞和到达时间、起飞和到达机场的代码以及国际地区等信息。 - 航空公司信息:可能包括航空公司代码、名称以及所属国家等。 - 飞机机型信息:如飞机类型、座位容量等,这有助于分析不同机型的使用频率和趋势。 - 航线信息:包括航线的起始和目的国家及城市,对于研究航线网络和优化航班计划具有参考价值。 这些数据可以用于航空交通流量分析、机场运营效率评估、航空市场分析等。 b. International_Report_Passengers.csv文件可能包含了以下内容: - 航班乘客信息:可能包括乘客的国籍、年龄、性别等信息。 - 航班类型:如全客机、全货机或混合型航班,可以分析乘客运输和货物运输的比例。 - 乘客数量:记录了各航班或航线的乘客数量,对于分析航空市场容量和增长趋势很有帮助。 - 飞行里程信息:有助于了解国际间不同航线的长度和飞行距离,为票价设置和燃油成本分析提供数据支持。 这些数据可以用于航空客运市场分析、需求预测、收益管理等方面。 4. 数据分析和应用实例: - 航空流量分析:通过分析离港航班数据,可以观察到哪些航线最为繁忙,哪些机场的国际航空流量最大,这有助于航空公司调整航班时刻表和运力分配。 - 市场研究:乘客数据可以揭示不同国家和地区之间的人口流动趋势,帮助航空公司和政府机构了解国际旅行市场的需求变化。 - 飞机利用率:结合飞机机型和飞行频率信息,可以对特定机型的使用率进行分析,评估飞机维护需求和燃油效率。 - 安全监管:通过对比不同航空公司和航班的安全记录,监管机构可以更有效地评估航空公司的安全性能,并采取必要的监管措施。 5. 技术和方法论: 分析此类数据通常涉及数据清洗、数据整合、统计分析、时间序列分析、预测建模等数据科学方法。使用Excel、SQL、R、Python等工具进行数据处理和分析是常见的做法。例如,可以使用Python的Pandas库来清洗和准备数据,使用Matplotlib和Seaborn库来可视化数据,然后利用Scikit-learn或Statsmodels库来构建预测模型。 通过以上知识点的提取和分析,我们可以理解到“U.S. International Air Traffic data(1990-2020)-数据集”的重要性,它不仅记录了跨越30年的航空交通数据,还为各种分析和应用提供了详实的基础信息。对于航空业从业者、政策制定者、研究人员以及数据分析师来说,这是一个极具价值的数据资源。
recommend-type

统计学视角:深入理解最小二乘法的概率论基础

# 1. 最小二乘法的基本概念 最小二乘法(Least Squares Method, LSM)是统计学和数据分析中广泛使用的一种数学优化技术。其主要目的是通过最小化误差的平方和来寻找数据的最佳函数匹配。这种方法最早由高斯提出,但在工程、物理、经济和其他领域中有着广泛的应用。 在本章中,我们将首先了
recommend-type

vscode中使用Codeium

<think>好的,我需要回答用户如何在VSCode中使用Codeium插件的问题。首先,我需要回顾用户提供的引用内容,看看是否有相关信息。用户提供的引用[1]提到了Codeium Chat可以解释代码中的问题,引用[2]提到了在IDEA中的一些问题,可能对VSCode的安装有帮助。用户还提到了安装步骤、基本功能、常见问题等。 首先,我应该分步骤说明安装过程,包括在VSCode扩展商店搜索Codeium并安装。然后,登录部分可能需要用户访问仪表板获取API密钥,引用[2]中提到登录问题,可能需要提醒用户注意网络或权限设置。 接下来是基本功能,比如代码自动补全和Chat功能。引用[1]提到C
recommend-type

UniMoCo:统一框架下的多监督视觉学习方法

在详细解析“unimoco”这个概念之前,我们需要明确几个关键点。首先,“unimoco”代表的是一种视觉表示学习方法,它在机器学习尤其是深度学习领域中扮演着重要角色。其次,文章作者通过这篇论文介绍了UniMoCo的全称,即“Unsupervised, Semi-Supervised and Full-Supervised Visual Representation Learning”,其背后的含义是在于UniMoCo框架整合了无监督学习、半监督学习和全监督学习三种不同的学习策略。最后,该框架被官方用PyTorch库实现,并被提供给了研究者和开发者社区。 ### 1. 对比学习(Contrastive Learning) UniMoCo的概念根植于对比学习的思想,这是一种无监督学习的范式。对比学习的核心在于让模型学会区分不同的样本,通过将相似的样本拉近,将不相似的样本推远,从而学习到有效的数据表示。对比学习与传统的分类任务最大的不同在于不需要手动标注的标签来指导学习过程,取而代之的是从数据自身结构中挖掘信息。 ### 2. MoCo(Momentum Contrast) UniMoCo的实现基于MoCo框架,MoCo是一种基于队列(queue)的对比学习方法,它在训练过程中维持一个动态的队列,其中包含了成对的负样本。MoCo通过 Momentum Encoder(动量编码器)和一个队列来保持稳定和历史性的负样本信息,使得模型能够持续地进行对比学习,即使是在没有足够负样本的情况下。 ### 3. 无监督学习(Unsupervised Learning) 在无监督学习场景中,数据样本没有被标记任何类别或标签,算法需自行发现数据中的模式和结构。UniMoCo框架中,无监督学习的关键在于使用没有标签的数据进行训练,其目的是让模型学习到数据的基础特征表示,这对于那些标注资源稀缺的领域具有重要意义。 ### 4. 半监督学习(Semi-Supervised Learning) 半监督学习结合了无监督和有监督学习的优势,它使用少量的标注数据与大量的未标注数据进行训练。UniMoCo中实现半监督学习的方式,可能是通过将已标注的数据作为对比学习的一部分,以此来指导模型学习到更精准的特征表示。这对于那些拥有少量标注数据的场景尤为有用。 ### 5. 全监督学习(Full-Supervised Learning) 在全监督学习中,所有的训练样本都有相应的标签,这种学习方式的目的是让模型学习到映射关系,从输入到输出。在UniMoCo中,全监督学习用于训练阶段,让模型在有明确指示的学习目标下进行优化,学习到的任务相关的特征表示。这通常用于有充足标注数据的场景,比如图像分类任务。 ### 6. PyTorch PyTorch是一个开源机器学习库,由Facebook的人工智能研究团队开发,主要用于计算机视觉和自然语言处理等任务。它被广泛用于研究和生产环境,并且因其易用性、灵活性和动态计算图等特性受到研究人员的青睐。UniMoCo官方实现选择PyTorch作为开发平台,说明了其对科研社区的支持和对易于实现的重视。 ### 7. 可视化表示学习(Visual Representation Learning) 可视化表示学习的目的是从原始视觉数据中提取特征,并将它们转换为能够反映重要信息且更易于处理的形式。在UniMoCo中,无论是无监督、半监督还是全监督学习,最终的目标都是让模型学习到有效的视觉表示,这些表示可以用于下游任务,如图像分类、目标检测、图像分割等。 ### 8. 标签队列(Label Queue) UniMoCo通过标签队列维护受监管的标签,这可能意味着对于那些半监督或全监督学习的任务,模型在进行对比学习时,会参考这些来自标签队列的数据。标签队列机制能帮助模型更好地利用有限的标注数据,增强模型的泛化能力。 ### 结论 UniMoCo的提出,以及其官方PyTorch实现的发布,将对计算机视觉领域产生深远影响。它不仅提供了一个统一的对比学习框架,使得从无监督到全监督的学习过程更加灵活和高效,而且为研究者们提供了一个强力的工具,以便更好地探索和实现各种视觉任务。UniMoCo的研究和应用前景,为机器学习尤其是深度学习在视觉领域的研究和实践提供了新的视角和可能。
recommend-type

【MATLAB算法精讲】:最小二乘法的实现与案例深度分析

# 1. 最小二乘法的基本原理 最小二乘法是一种数学优化技术,它通过最小化误差的平方和来寻找数据的最佳函数匹配。其核心思想是选择一条曲线,使得所有观察点到这条曲线的距离之和最小。这种方法广泛应用于统计学、信号处理、工程学和经济学等领域,尤其适用于需要通过一组数据点来确定函数参数的情况。 ## 1.1 统计学视角下的最小二乘法 在统计学中,最小二乘法经常用于
recommend-type

Idea使用教程+jdk配置

<think>好的,我现在需要回答用户关于IntelliJ IDEA使用教程和JDK配置方法的问题。首先,用户明确提到了参考站内引用中的内容,引用[1]和引用[2]都涉及JDK的配置步骤,但看起来这些引用内容可能来自其他问题或文档,可能与当前问题不完全相关,但用户希望我利用这些信息来组织回答。 首先,我需要确认IntelliJ IDEA配置JDK的基本步骤,并整合用户提供的引用内容。引用[1]提到选择JDK安装根目录,例如D:\develop\Java\jdk-17,这说明配置时需要定位到JDK的主目录。引用[2]则提到了通过New按钮选择JDK版本,并完成项目创建,这部分可能涉及到项目设置
recommend-type

GitHub入门实践:审查拉取请求指南

从提供的文件信息中,我们可以抽取以下知识点: **GitHub入门与Pull Request(PR)的审查** **知识点1:GitHub简介** GitHub是一个基于Git的在线代码托管和版本控制平台,它允许开发者在互联网上进行代码的托管和协作。通过GitHub,用户可以跟踪和管理代码变更,参与开源项目,或者创建自己的私有仓库进行项目协作。GitHub为每个项目提供了问题跟踪和任务管理功能,支持Pull Request机制,以便用户之间可以进行代码的审查和讨论。 **知识点2:Pull Request的作用与审查** Pull Request(PR)是协作开发中的一个重要机制,它允许开发者向代码库贡献代码。当开发者在自己的分支上完成开发后,他们可以向主分支(或其他分支)提交一个PR,请求合入他们的更改。此时,其他开发者,包括项目的维护者,可以审查PR中的代码变更,进行讨论,并最终决定是否合并这些变更到目标分支。 **知识点3:审查Pull Request的步骤** 1. 访问GitHub仓库,并查看“Pull requests”标签下的PR列表。 2. 选择一个PR进行审查,点击进入查看详细内容。 3. 查看PR的标题、描述以及涉及的文件变更。 4. 浏览代码的具体差异,可以逐行审查,也可以查看代码变更的概览。 5. 在PR页面添加评论,可以针对整个PR,也可以针对特定的代码行或文件。 6. 当审查完成后,可以提交评论,或者批准、请求修改或关闭PR。 **知识点4:代码审查的最佳实践** 1. 确保PR的目标清晰且具有针对性,避免过于宽泛。 2. 在审查代码时,注意代码的质量、结构以及是否符合项目的编码规范。 3. 提供建设性的反馈,指出代码的优点和需要改进的地方。 4. 使用清晰、具体的语言,避免模糊和主观的评论。 5. 鼓励开发者间的协作,而不是单向的批评。 6. 经常审查PR,以避免延迟和工作积压。 **知识点5:HTML基础** HTML(HyperText Markup Language)是用于创建网页的标准标记语言。它通过各种标签(如`<p>`用于段落,`<img>`用于图片,`<a>`用于链接等)来定义网页的结构和内容。HTML文档由元素组成,这些元素通过开始标签和结束标签来标识。例如,`<p>This is a paragraph.</p>`。HTML的最新版本是HTML5,它引入了许多新的元素和API,增强了对多媒体、图形和本地存储的支持。 **知识点6:GitHub Pages功能介绍** GitHub Pages是一个静态站点托管服务,允许用户直接从GitHub仓库中发布个人、组织或项目的网站。你可以通过设置一个专门的分支来存放你的网站源代码,然后利用GitHub Pages的设置选项,选择分支并发布你的网站。发布的网站将可以通过一个自定义的URL访问,这个URL通常是`username.github.io/repo-name`的格式。这为开发者提供了一个简单而快速的方法来搭建个人或项目的展示页面。 **知识点7:简单的游戏开发实践** 文件描述中提到了一个基于项目的学习活动,通过游戏的形式,让入门人员体验操作和理解基本的游戏开发概念。在这个活动中,参与者通过键盘操作控制形状的旋转和移动,目标是创建无空隙的完整行,这涉及到游戏逻辑、用户输入处理和图形界面显示等基础知识。该活动可能使用了HTML、JavaScript和CSS等前端技术实现,参与者通过实践操作来学习如何编程,并理解基本的游戏设计原理。
recommend-type

【R语言高级教程】:最小二乘法从入门到精通

# 1. 最小二乘法的理论基础 最小二乘法是数学优化技术之一,广泛应用于统计学、数据分析和工程学等领域。其核心思想在于找到一条直线(或曲线),使得所有观测点到该直线的垂直距离之和最小,即误差平方和最小。这一方法不仅简单易行,而且可以有效减少异常值对模型的影响,使得参数估计更加稳定。 ## 1.1 最小二乘法的数学表述 在最基本的线性回归模型中,最小二乘法通过最小化误差的平方和来寻找最
recommend-type

cadence画PCB时改变线长

<think>好的,我现在需要帮助用户解决在Cadence PCB设计中调整走线长度的问题。首先,我得回想一下用户提到的引用内容,尤其是引用1、2和3,里面提到了实时显示走线长度、约束导向设计以及过孔对长度的影响。用户可能已经知道如何显示长度,现在想知道如何调整它们。 用户的问题是如何调整走线长度以满足特定需求,比如等长布线或时序要求。我应该先分步骤说明不同的调整方法,比如手动调整、使用自动优化工具、蛇形走线,以及设置约束管理器中的规则。 记得引用中的信息,比如引用2提到的约束导向环境和实时长度显示,所以需要提到约束管理器的使用。引用3讨论了过孔对长度的影响,调整过孔数量可能也是一种方法。