这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 带返回值的函数给全局变量赋值时出错,返回的值一直无变化

共1条 1/1 1 跳转至

带返回值的函数给全局变量赋值时出错,返回的值一直无变化

高工
2024-11-24 10:06:59     打赏

在学习江科大的stm32课程编码器正转反转时,出现一些问题,

主函数代码如下:
#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "Encoder.h"

int16_t Num;            //定义待被旋转编码器调节的变量

int main(void)
{
OLED_Init();        //OLED初始化
Encoder_Init();        //旋转编码器初始化

while (1)
{
Num += Encoder_Get();       //获取旋转编码器的增量值

OLED_ShowSignedNum(1, 5, Num, 5);    //显示Num

}
}

其中Num += Encoder_Get();  修改为Num = Encoder_Get();则实现不了编码器正反转OLED显示数值增减的现象。一直找不到问题出在哪里?

另外如果编码器模块里的状态获取函数更改为:

int16_t Encoder_Get(void)
{
return Encoder_Count;
}

然后主函数更改为:

while (1)
{
OLED_ShowSignedNum(1, 5, Encoder_Get(), 5);
}
也是可以的。还请大佬们指导下,本人小白,刚接触,一直没想明白。

另外还有一个问题:keil软件Debug时,如何查看中间变量值?比如Temp,我想通过watch窗口查看,显示非法数据,有什么方法可以看到中间变量值么?





关键词: 函数     全局     变量     赋值    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]