- 打卡等级:以坛为家I
- 打卡总天数:393
- 最近打卡:2025-06-17 11:06:43
已绑定手机
高级会员
- 积分
- 674
|
发表于 2024-11-1 13:07:16
|
显示全部楼层
本帖最后由 小坤 于 2024-11-1 13:09 编辑
BYTE bReadPtr;
BYTE bWritePtr;
例程中都主注释了 串口的读写指针,这个是典型的环形队形数据的处理机制
case STG_READ_ADDR0:
case STG_READ_ADDR1:
case STG_READ_ADDR2:
case STG_READ_ADDR3:
case STG_PROGRAM_ADDR0:
case STG_PROGRAM_ADDR1:
case STG_PROGRAM_ADDR2:
case STG_PROGRAM_ADDR3:
case STG_ERASE_ADDR0:
case STG_ERASE_ADDR1:
case STG_ERASE_ADDR2:
case STG_ERASE_ADDR3:
addr <<= 8;
addr |= dat;
stage++;
if (stage == STG_ERASE_DONE)
{
switch (cmd)
{
case CMD_ERASE_4K:
W25Q_Erase4K_20(addr, FALSE);
UART_SendData("AIS", 3);
stage = STG_IDLE;
break;
case CMD_ERASE_32K:
W25Q_Erase32K_52(addr, FALSE);
UART_SendData("AIS", 3);
stage = STG_IDLE;
break;
case CMD_ERASE_64K:
W25Q_Erase64K_D8(addr, FALSE);
UART_SendData("AIS", 3);
stage = STG_IDLE;
break;
default:
goto L_CheckHead;
}
}
break;
以上的case ......条件都是执行下列的程序
|
|