(已解决)STM32L151使用串口发送数据第一字节为FE问题!
最近学习到串口发送数据时遇到一个问题:第一个字节总是FE,后面才是对的数据。
最终解决的方法是:
讲GPIO复用的操作放到GPIO配置之前!
体现在代码中就是:
1 //打开GPIO时钟 2 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE); 3 //打开USART的时钟 4 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); 5 6 //GPIOA的Pin9和Pin10复用为串口1使用 7 GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1); 8 GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1); 9 10 //配置USART_TX为推挽复用 11 GPIO_InitStruct.GPIO_Pin = DEBUG_USART_TX_GPIO_PIN; 12 GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; 13 GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; 14 GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; 15 GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz; 16 GPIO_Init(DEBUG_USART_TX_GPIO_PORT,&GPIO_InitStruct); 17 18 //配置USART_RX为浮空输入 19 GPIO_InitStruct.GPIO_Pin = DEBUG_USART_RX_GPIO_PIN; 20 GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; 21 GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; 22 GPIO_Init(DEBUG_USART_RX_GPIO_PORT,&GPIO_InitStruct);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」