zj_zane

    1. 你读出来了没有?我读的总是错,我参考的是圈圈的代码,但是用的是 STM8S,我也刚刚弄D12,交流交流,Q:4545138 以下我的程序 void main(){  u16 id;  CS_CLR;  //CS_N=0; SUSP_CLR; // SUSP=0; REST_SET;//RST=1; EOT_SET;//EOT=1; DMACK_SET;  //DMACK=1; id=D12ReadID();  while(1; }     ///////以下D12ReadID()用到的子函数部分//////////////// /*******************************************************************函数功能:将数据口设置为输入状态入口参数:返    回:备    注:********************************************************************/D12SetPortIn(void){ //将数据口设置为输入状态 PC_DDR=0X00;  //输入 PC_CR1=0XFF;  //上拉 PC_CR2=0X00;  //无中断 }////////////////////////End of function//////////////////////////////********************************************************************函数功能:将数据口设置为输出状态入口参数:返    回:备    注:********************************************************************/D12SetPortOut(void){ //将数据口设置为输出状态 PC_DDR=0XFF;  //输出 PC_CR1=0XFF;  //退挽输出 PC_CR2=0XFF;  //10MHZ }////////////////////////End of function//////////////////////////////********************************************************************函数功能:将数据写到数据线上入口参数:x_data,需要输出的数据返    回:备    注:********************************************************************/D12SetData(u8 x_data){ D12SetPortIn();////将数据口设置为输入状态 USB_DATA_OUT=x_data; //}////////////////////////End of function//////////////////////////////******************************************************************函数功能:D12写命令。入口参数:Command:一字节命令。返    回:无。备    注:无。********************************************************************/void D12WriteCommand(u8 Command){ //D12SetCommandAddr();  //设置为命令地址  USB_A0_SET;  //D12ClrWr(); //WR置低  USB_WR_CLR;    D12SetPortOut(); //将数据口设置为输出状态(注意这里为空宏,移植时可能有用) D12SetData(Command);  //输出命令到数据口上  //D12SetWr(); //WR置高  USB_WR_SET;  D12SetPortIn(); //将数据口设置为输入状态,以备后面输入使用}////////////////////////End of function////////////////////////////// /********************************************************************函数功能:写一字节D12数据。入口参数:无。返    回:写一字节。备    注:无。********************************************************************/u8  D12GetData(void){ D12SetPortOut; return USB_DATA_OUT; }////////////////////////End of function///////////////////////////// /********************************************************************函数功能:读一字节D12数据。入口参数:无。返    回:读回的一字节。备    注:无。********************************************************************/u8 D12ReadByte(void){ u8 temp; //D12SetDataAddr(); //设置为数据地址 USB_A0_CLR; //D12ClrRd(); //RD置低  USB_RD_CLR;  temp=D12GetData(); //读回数据 //D12SetRd(); //RD置高 USB_RD_SET; return temp; //返回读到数据}////////////////////////End of function///////////////////////////// /********************************************************************函数功能:读D12的ID。入口参数:无。返    回:D12的ID。备    注:无。********************************************************************/u16 D12ReadID(void){ u16 id; //D12WriteCommand(Read_ID); //写读ID命令 Read_ID=0xfd  D12WriteCommand(0xfd); //写读ID命令 Read_ID=0xfd id=D12ReadByte(); //读回ID号低字节 id|=((u16)D12ReadByte())<<8; //读回ID号高字节 return id;}////////////////////////End of function//////////////////////////////

最近访客

< 1/1 >

统计信息

已有807人来访过

  • 芯积分:--
  • 好友:--
  • 主题:1
  • 回复:1

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言