杨爱林林 发表于 2013-4-27 12:25 
在函数内部定义static 类型的的局部变量 那么当该函数执行结束后 此变量的内存空间不释放
这就是用与不 ...
buf[512]只是内部调用,并没有参与参数传递的任务。
贴一段代码
- void SD_ReadDisk(uint32_t sector)
- {
- uint8_t retry;
- uint16_t i;
- uint8_t buf[512]={0};
- if(SD_SendCmd(CMD17,sector,0X01)==0x00)
- {
- retry=0XFF;
- while(retry--)
- {
- if(0xfe == SD_SendData(0xff))
- break;
- } //等待数据令牌
- if(retry != 0)
- {
- for(i=0;i<512;i++)
- buf[i]=SD_SendData(0Xff);
- SD_SendData(0xff);
- SD_SendData(0xff);//伪CRC校验
- /*----------先发高地址的数据---一字节内小端模式-------------*/
- for(i=0;i<512;i++)
- ADD_QUEUE_DATA(CH340_SendQueue,buf[i]);
- }
- }
- }
|