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
搜索项目原来目录名,改成现在的目录名,保存。