如下程序,无法运行flashdata函数。
你的counter是个unsigned char 的类型,不会大于0xffff的。
你要设置为unsigned short int ,或是unsigned int 的。
unsigned char在C语言中表示的是无符号的字符型,对应的整数范围为0~255.
255相当于16进制的0XFF,因此它最多只能是两位,不能是四位
你这里最好用一个长整形的
unsigned char 对应的整数范围为0~255. 是不可能大于0xffff这个数的 这个逻辑根本执行不到的
不懂您的做法?
if (htim->Instance == TIM2) { counter++; if(counter>=0xffff){ counter=0; flashdata(); } }
然後用Systick的計數值來計算條件發生即可,當然型別也是一個問題, unsigned char只到0xff
所以還需要您本人來說您要什麼功能...
以上