本帖最后由 firefly2k 于 2023-9-3 21:53 编辑
2023/9/1
今天干货很多,又学习到了很多关键点。而且有老师现场解答。这里放一下一些关键的笔记
位寻址及定义 bdata指8051兼容的位空间;ebdata指定扩展的stc32G单片机的空间 int bdata ibase//可位寻址的int型 char ebdata arry[4]//可位寻址的char型数组 sbit mybit0= ibase^0 //ibase的位0 sbit mybit15= ibase^15 //ibase的位15 sbit ary07= arry[3]^7 //arry[3]的位7 8051总位数最大128bit,STC32可扩展位空间最多768位变量 禁止 bit *ptr,bit ware[5],指针和数组不行
变量寻址范围 idata, data, pdata(指针),只能寻址8位 near, xdata, code(指针),寻址16位
far, huge(指针),寻址32位
浮点数问题检测 C251库函数有_chkfloat_检查浮点数状态 switch( chkfloat (f1))//调用判定结果结果
{
case 0:// 取值为0,表示浮点运算结果正常
printf (”result is a number\n"); break; // 在Keil UART窗打印信息
case 1:// 取值为1,表示浮点除数为零
printf ("result is zero\n"); break;// 在Keil UART窗口打印信息
case 2:// 取值为2,表示浮点运算上溢
printf ("result is +INF\n"); break;// 在Keil UART窗口打印信息
case 3:// 取值为3,表示浮点运算下溢
printf ("result is -INF\n"); break;// 在Keil UART窗口打印信息
case 4:// 取值为4,表示不是一个数
printf ("result is NaN\n"): break;// 在Keil UART窗口打印信息
}
Double变量注意的问题 使用double,必须在keil->C251,选中“double precision floating point”
|