2026/4/18 12:45:56
网站建设
项目流程
福州建设银行官网招聘网站,个人网站页面模板,成都科技网站建设热,国外营销网站目录
解决#xff1a;无构建目标或目标与项目不匹配
如何在vscode中添加文件#xff0c;无须每次到keil中添加#xff1f;
如何在vscode直接定义 (keil中定义的) 宏
解决vscode中 USART1_IRQn 报红 (仅针对STM32F103C8T6,其他型号可能是STM32Fxxx_MD)
Keil 烧录结果需要…目录解决无构建目标或目标与项目不匹配如何在vscode中添加文件无须每次到keil中添加如何在vscode直接定义 (keil中定义的) 宏解决vscode中 USART1_IRQn 报红 (仅针对STM32F103C8T6,其他型号可能是STM32Fxxx_MD)Keil 烧录结果需要下一次才能执行勾选 Use MicroLIBKeil 烧录和Reset and Run 不起作用USART 莫名其妙打印问号 ? 或者 00 针对STM32F103C8T6bootloader跳转A区时A区打印问号?解决无构建目标或目标与项目不匹配解决方法方法1. 重启vscode方法2.重新选择一下目标文件无须重启vscode其他问题如何在vscode中添加文件无须每次到keil中添加找到.....uvprojx文件crtlFGroups按照红框的格式增加你需要添加的文件就行然后重新选择一下目标文件如何在vscode直接定义 (keil中定义的) 宏找到.....uvprojx文件crtlFDefine解决vscode中 USART1_IRQn 报红 (仅针对STM32F103C8T6,其他型号可能是STM32Fxxx_MD)在 Project.uvprojx 里搜索 Define然后添加宏 STM32F10X_MDKeil 烧录结果需要下一次才能执行勾选 Use MicroLIBKeil 烧录和Reset and Run 不起作用Keil Reset and Run 不起作用debug取消勾选ST-Link 的 pack-EnableUSART 莫名其妙打印问号 ? 或者 00 针对STM32F103C8T6解决方案先 USART_Init()再 GPIO_Init()if (USARTx USART1) RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); else if (USARTx USART2) RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); else if (USARTx USART3) RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); USART_InitTypeDef USART_InitStruct {0}; USART_InitStruct.USART_BaudRate 115200; USART_InitStruct.USART_HardwareFlowControl USART_HardwareFlowControl_None; USART_InitStruct.USART_Mode USART_Mode_Tx | USART_Mode_Rx; USART_InitStruct.USART_Parity USART_Parity_No; USART_InitStruct.USART_StopBits USART_StopBits_1; USART_InitStruct.USART_WordLength USART_WordLength_8b; USART_Init(USARTx, USART_InitStruct); // 先USART_Init再GPIO_Init if (GPIOx_USART GPIOA) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); else if (GPIOx_USART GPIOB) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); else if (GPIOx_USART GPIOC) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitTypeDef GPIO_InitStruct {0}; GPIO_InitStruct.GPIO_Mode GPIO_Mode_AF_PP; GPIO_InitStruct.GPIO_Pin USARTTx; GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz; GPIO_Init(GPIOx_USART, GPIO_InitStruct); GPIO_InitStruct.GPIO_Mode GPIO_Mode_IPU; GPIO_InitStruct.GPIO_Pin USARTRx; GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz; GPIO_Init(GPIOx_USART, GPIO_InitStruct); USART_Cmd(USARTx,ENABLE);// 最后解释如果先初始化 GPIO此时- USART_Init 还没执行- TX 引脚切换到 AF_PP 后其默认输出值 **不由 USART 控制**而由 GPIO AF 配置逻辑初始值决定TX 引脚在 GPIO 初始化过程中产生的低电平毛刺被对端串口误判为一个字节为什么只有 TX发送脚会触发这个问题TX 在 UART 空闲状态下应保持高电平。但在配置 AF_PP 之前或期间TX 可能- 被 GPIO 默认驱成低电平- 或进入 Hi-Z 后又被上下拉影响- 或被 ST 的复用层逻辑短暂接管任何**低电平持续超过 1/16 bit 时间**上位机都会识别成 UART Start Bit。然后初始化 USART后面立即恢复高电平因为 TX 默认空闲为高 → 8 个采样点都是高然后帧内其他 8 bit 都是高电平于是得到0000 0000输出?bootloader跳转A区时A区打印问号?在跳转A区前// TCTransmit Complete-发送完成,当TDR空且移位寄存器空时 while (USART_GetFlagStatus(USARTx, USART_FLAG_TC) RESET);