这些年用Keil遇到的坑

1、今天调程序,函数中数组inBuf_32始终无法赋值

这是3个数组的定义
abc.c
这样不行

uint32_t EEPROM_FLASH_USER_DATA[FLASH_TOTAL_SIZE]={0xFF};
uint32_t EEPROM_FLASH_REGCODE_DATA[FLASH_TOTAL_SIZE]={0xaa};

static unsigned short p_InBuf_32=0;
static uint32_t inBuf_32[100];

这样也不行:

static unsigned short p_InBuf_32=0;
uint32_t EEPROM_FLASH_USER_DATA[FLASH_TOTAL_SIZE]={0xFF};
uint32_t EEPROM_FLASH_REGCODE_DATA[FLASH_TOTAL_SIZE]={0xFF};

static uint32_t inBuf_32[100];

这样就可以:

uint32_t EEPROM_FLASH_USER_DATA[FLASH_TOTAL_SIZE]={0};//初始化为0
//uint32_t EEPROM_FLASH_USER_DATA[FLASH_TOTAL_SIZE];//不初始化
uint32_t EEPROM_FLASH_REGCODE_DATA[FLASH_TOTAL_SIZE]={0xaa};

static unsigned short p_InBuf_32=0;
static uint32_t inBuf_32[100];

.c文件中,定义的第一个数组,不能初始化?或者要初始化也必须是0?
经验:这类问题往前面的数组或指针上面找原因,前面可能指针越界等。

2、函数中static 变量值不能保存,改为全局变量后没问题,这个是偶尔出现,可能也与初始化有关,待回头再测试下。先mark下

3、E450项目断断续续做了几个月了,最近keil界面编辑越来越卡

有时复制后粘贴要1-2秒钟,网上查了半天也没什么结果
最后重命名这两个文件,好像不卡了,这两个文件系统会再次自动生成。
E450.uvguix.solidtech
E450.uvoptx

这样修改后Options for target中的下载器ST LINK设置会被置位,要改回来
慢主要体现在回车换行输入时
也可能是界面加载文件太多,或者是Bookmark设置太多,再观察下,先记录。

破案了,经过几天的反复折磨,最终确认是KEIL,左侧项目栏,切换到FUNCTIONS时,界面就会卡
在这里插入图片描述

4、STM32F429 整数部分大于8位的浮点数计数可能出现问题

a、两个浮点数加减,当一个整数部分8位,另一个整数部分各位时,相加结果可能不正确,通过调试可见。
b、一个浮点数+一个8位的整数=整型数时,结果可能出错。要把浮点数先转换成整型再计算。

5、 莫名出现的0 ?(20220914)

在这里插入图片描述
在这里插入图片描述

左边的两个 0 ?分别指向了 245和252行,什么意思????
解决:
在这里插入图片描述

在245及252行分别加入:
bool invalid_variable=0;//消灭 0 ?
bool invalid_variable1=0;//消灭 0 ?
左边的0 ?不见了,why???

6.项目重命名后,编译warning:“xxxx.axf”: Error: Q0122E: Could not open file ‘xxxx.axf’: No such file or directory

记事本打开项目文件xxxx.uvprojx
搜索项目原来目录名,改成现在的目录名,保存。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值