携程网网站做的怎么样国内新闻大事20条
携程网网站做的怎么样,国内新闻大事20条,seo和sem,315网站行业#x1f3c6;本文收录于 《全栈 Bug 调优#xff08;实战版#xff09;》 专栏。专栏聚焦真实项目中的各类疑难 Bug#xff0c;从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解#xff0c;形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者//OLED初始化AD_Init();//AD初始化/*显示静态字符串*/OLED_ShowString(1,1,ADValue:);OLED_ShowString(2,1,Voltage:0.00V);while(1){ADValueAD_GetValue();//获取AD转换的值Voltage(float)ADValue/4095*3.3;//将AD值线性变换到0~3.3的范围表示电压OLED_ShowNum(1,9,ADValue,4);//显示AD值OLED_ShowNum(2,9,Voltage,1);//显示电压值的整数部分OLED_ShowNum(2,11,(uint16_t)(Voltage*100)%100,2);//显示电压值的小数部分Delay_ms(1000);//延时100ms手动增加一些转换的间隔时间}}全文目录 问题描述 请知悉如下方案不保证一定适配你的问题✅️问题理解✅️问题解决方案方案 A强制设置GPIO为模拟输入模式 增加ADC采样时间最常见80%同学这里解决强烈先试这个方案 B添加ADC校准F103系列必做很多教程漏掉导致偏移到满值方案 C检查AD_GetValue()函数逻辑确保正确启动并等待转换完成✅️问题延伸✅️问题预测✅️小结 结语 互动说明 文末福利技术成长加速包 Who am I? 请知悉如下方案不保证一定适配你的问题如下是针对上述问题进行专业角度剖析答疑不喜勿喷仅供参考✅️问题理解你的现象非常典型上电后OLED立刻显示“Voltage:3.30V”ADValue≈4095循环里也没变化。输入悬空/接地/接3.3V都一样 → ADC转换结果始终是满量程。这说明ADC硬件在工作能转换但读取到的值被“钳位”在最大值根本原因几乎全是初始化不完整GPIO引脚没设为纯模拟输入AIN导致内部数字电路干扰或上拉到VDD。没做ADC校准F103系列必须校准寄存器没清零导致偏移到满值。采样时间太短默认可能只有1.5周期对高阻抗源采样不充分。AD_GetValue()函数里没正确启动转换或等待完成标志。江协教程里这些点有时会“一笔带过”很多同学复刻后就中招了完全可解决跟着我一步步来✨✅️问题解决方案方案 A强制设置GPIO为模拟输入模式 增加ADC采样时间最常见80%同学这里解决强烈先试这个STM32F103复位后GPIO默认是浮空输入但ADC要求纯模拟模式GPIO_Mode_AIN否则数字输入缓冲会干扰导致读满值或噪声。超级详细修改步骤直接复制粘贴到你的代码在AD_Init()函数里GPIO初始化部分必须这样写假设你用PA0作为ADC通道GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);GPIO_InitStructure.GPIO_PinGPIO_Pin_0;// PA0GPIO_InitStructure.GPIO_ModeGPIO_Mode_AIN;// 必须是模拟输入这里是最大元凶GPIO_Init(GPIOA,GPIO_InitStructure);ADC采样时间要设长一点江协教程常设1.5或7.5周期太短容易不准ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_55Cycles5);// 推荐55.5或239.5周期// 或者最保守ADC_SampleTime_239Cycles5完整AD_Init()参考标准版voidAD_Init(void){ADC_InitTypeDef ADC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);RCC_ADCCLKConfig(RCC_PCLK2_Div6);// ADC时钟不超过14MHz建议分频6// GPIO模拟输入关键GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_PinGPIO_Pin_0;GPIO_InitStructure.GPIO_ModeGPIO_Mode_AIN;GPIO_Init(GPIOA,GPIO_InitStructure);// ADC基本配置ADC_InitStructure.ADC_ModeADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvModeDISABLE;ADC_InitStructure.ADC_ContinuousConvModeDISABLE;// 单次转换模式轮询用ADC_InitStructure.ADC_ExternalTrigConvADC_ExternalTrigConv_None;ADC_InitStructure.ADC_DataAlignADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfChannel1;ADC_Init(ADC1,ADC_InitStructure);// 通道和采样时间ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_55Cycles5);ADC_Cmd(ADC1,ENABLE);}方案 B添加ADC校准F103系列必做很多教程漏掉导致偏移到满值F103的ADC有内部偏移必须手动校准否则读值严重偏差甚至满值。添加代码放在AD_Init()末尾ADC使能后// ADC校准超级重要ADC_ResetCalibration(ADC1);// 复位校准寄存器while(ADC_GetResetCalibrationStatus(ADC1));// 等待复位完成ADC_StartCalibration(ADC1);// 开始校准while(ADC_GetCalibrationStatus(ADC1));// 等待校准完成方案 C检查AD_GetValue()函数逻辑确保正确启动并等待转换完成江协教程里这个函数常写成轮询单次转换如果漏了启动命令就会一直读上一次的垃圾值往往是4095。标准正确版本uint16_tAD_GetValue(void){ADC_SoftwareStartConvCmd(ADC1,ENABLE);// 软件触发启动转换关键while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));// 等待转换完成标志returnADC_GetConversionValue(ADC1);// 读取值}注意如果是连续转换模式要改成ENABLE连续但轮询时推荐单次更稳定。✅️问题延伸掌握后可以扩展多通道扫描、DMA采集不占CPU、平均滤波提升精度。配合温度传感器如内部温度传感器通道16做环境监测。进阶玩注入通道、双ADC同步、外部参考电压VREF引脚。OLED显示可以优化成sprintf格式化浮点数更优雅。✅️问题预测不加校准未来测温度传感器或电位器会严重漂移。采样时间太短接高阻抗源如NTC热敏会读不准。用HAL库的话这些坑更少自动校准建议后续升级到HAL或LL库。板子供电不稳USB供电噪声大建议加0.1uF10uF去耦电容到VREF/VDDA。✅️小结这个“ADC不管怎么接都显示3.3V”的问题核心就是GPIO没设AIN 没校准 采样时间短这三大经典坑优先按A方案强制加GPIO_Mode_AIN和长采样时间B方案补上校准基本100%秒解整个流程我都用Mermaid图给你画好了按步骤走绝对行 结语 互动说明希望以上分析与解决思路能为你当前的问题提供一些有效线索或直接可用的操作路径。若你按文中步骤执行后仍未解决不必焦虑或抱怨这很常见——复杂问题往往由多重因素叠加引起欢迎你将最新报错信息、关键代码片段、环境说明等补充到评论区我会在力所能及的范围内结合大家的反馈一起帮你继续定位 如果你有更优或更通用的解法非常欢迎在评论区分享你的实践经验或改进方案你的这份补充可能正好帮到更多正在被类似问题困扰的同学正所谓「赠人玫瑰手有余香」也算是为技术社区持续注入正向循环 文末福利技术成长加速包 文中部分问题来自本人项目实践部分来自读者反馈与公开社区案例也有少量经由全网社区与智能问答平台整理而来。若你尝试后仍没完全解决问题还请多一点理解、少一点苛责——技术问题本就复杂多变没有任何人能给出对所有场景都 100% 套用的方案。如果你已经找到更适合自己项目现场的做法非常建议你沉淀成文档或教程这不仅是对他人的帮助更是对自己认知的再升级。如果你还在持续查 Bug、找方案可以顺便逛逛我专门整理的 Bug 专栏《全栈 Bug 调优实战版》。这里收录的都是在真实场景中踩过的坑希望能帮你少走弯路节省更多宝贵时间。✍️如果这篇文章对你有一点点帮助欢迎给 bug菌 来个一键三连关注 点赞 收藏你的支持是我持续输出高质量实战内容的最大动力。同时也欢迎关注我的硬核公众号 「猿圈奇妙屋」获取第一时间更新的技术干货、BAT 等互联网公司最新面试真题、4000G 技术 PDF 电子书、简历 / PPT 模板、技术文章 Markdown 模板等资料统统免费领取。你能想到的绝大部分学习资料我都尽量帮你准备齐全剩下的只需要你愿意迈出那一步来拿。 Who am I?我是 bug菌热活跃于 CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等技术社区CSDN 博客之星 Top30、华为云多年度十佳博主/卓越贡献者、掘金多年度人气作者 Top40掘金、InfoQ、51CTO 等平台签约及优质作者全网粉丝累计30w。更多高质量技术内容及成长资料可查看这个合集入口 点击查看 ️硬核技术公众号「猿圈奇妙屋」期待你的加入一起进阶、一起打怪升级。- End -