STM32问题分析:..\Src\COM.c(62): warning: #550-D: variable "a" was set but never used

本文讨论了在STM32编程中遇到的编译警告:#550-D,涉及变量'a'设置但未使用的问题。编译器优化导致赋值操作被忽略。解决方案是在变量声明前添加volatile关键字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:
本文原创作者『Allen5G』
首发于微信公众号『Allen5G』
标签:编程,软件,算法,思维

QQ技术资料群:736386324
个人微信 : coderAllen (人较多,请备注公众号读者)

推荐阅读:
如何更快的学习单片机?


定义了变量 uint8_t a;
之后使用变量代码 a= TX_buf[counter];
编译器对于这种情况会做优化,编译器会分析出函数的返回值没有被使用,因此给 a 赋值会被编译器省略掉,于是只剩下定义变量 a,并没有使用 a (使用 a 的那句赋值步骤被编译器优化掉了)
解决办法:在定义的变量前加 volatile

Build started: Project: bbss *** Using Compiler &#39;V5.06 update 7 (build 960)&#39;, folder: &#39;D:\k5\ARM\ARMCC\Bin&#39; Build target &#39;bbss&#39; Note: source file &#39;../Core/Src/system_stm32f4xx.c&#39; - object file renamed from &#39;bbss\system_stm32f4xx.o&#39; to &#39;bbss\system_stm32f4xx_1.o&#39;. compiling adc.c... compiling tim.c... compiling stm32f4xx_hal_msp.c... compiling i2c.c... compiling dac.c... compiling gpio.c... compiling system_stm32f4xx.c... compiling main.c... ..\Core\Src\main.c(24): warning: #223-D: function "SystemClock_Config" declared implicitly SystemClock_Config(); ..\Core\Src\main.c(33): warning: #223-D: function "OLED_Init" declared implicitly OLED_Init(); ..\Core\Src\main.c(34): warning: #223-D: function "OLED_Clear" declared implicitly OLED_Clear(); ..\Core\Src\main.c(80): warning: #223-D: function "OLED_ShowString" declared implicitly OLED_ShowString(0, 0, "Timeout "); ..\Core\Src\main.c(82): warning: #223-D: function "OLED_ShowString" declared implicitly OLED_ShowString(0, 0, "Hi "); ..\Core\Src\main.c(84): warning: #223-D: function "sprintf" declared implicitly sprintf(buffer, "%.1f kΩ", resistance); ..\Core\Src\main.c(85): warning: #223-D: function "OLED_ShowString" declared implicitly OLED_ShowString(0, 0, buffer); ..\Core\Src\main.c(106): warning: #223-D: function "fabs" declared implicitly if (fabs(current_resistance - prev_resistance) < 0.1f) { ..\Core\Src\main.c(122): warning: #223-D: function "OLED_ShowString" declared implicitly OLED_ShowString(0, 0, "Timeout "); ..\Core\Src\main.c(124): warning: #1-D: last line of file ends without a newline } ..\Core\Src\main.c(18): warning: #550-D: variable "stability_counter" was set but never used static uint32_t stability_counter = 0; ..\Core\Src\main.c: 11 warnings, 0 errors
03-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeAllen嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值