#include "w5300.h"
void _SetMR(u16 flag)
{
W5300RW->MR = flag;
}
u16 _GetMR(void)
{
u16 ret;
ret = W5300RW->MR;
return ret;
}
void _SetIDM_AR(u16 wAddr)
{
W5300IDM->AR = wAddr;
}
u16 _GetIDM_AR(void)
{
u16 val = 0;
val = W5300IDM->AR;
return val;
}
void _SetIDM_DR(u16 wAddr)
{
W5300IDM->DR = wAddr;
}
u16 _GetIDM_DR(void)
{
u16 val = 0;
val = W5300IDM->DR;
return val;
}
void _SetIR(u16 val)
{
W5300RW->IR = val;
}
u16 _GetIR(void)
{
u16 ret;
ret = W5300RW->IR;
return ret;
}
void _SetIMR(u16 val)
{
W5300RW->IMR = val;
}
u16 _GetIMR(void)
{
u16 ret;
ret = W5300RW->IMR;
return ret;
}
void _SetSHAR(u8 * mac)
{
W5300RW->SHAR[0] = (u16)(mac[0]<<8) | (u16)mac[1];
W5300RW->SHAR[1] = (u16)(mac[2]<<8) | (u16)mac[3];
W5300RW->SHAR[2] = (u16)(mac[4]<<8) | (u16)mac[5];
}
void _GetSHAR(u8 *mac)
{
mac[0] = W5300RW->SHAR[0] >> 8;
mac[1] = W5300RW->SHAR[0];
mac[2] = W5300RW->SHAR[1] >> 8;
mac[3] = W5300RW->SHAR[1];
mac[4] = W5300RW->SHAR[2] >> 8;
mac[5] = W5300RW->SHAR[2];
}
void _SetGAR(u8 * gw)
{
W5300RW->GAR[0] = (u16)(gw[0]<<8) | (u16)gw[1];
W5300RW->GAR[1] = (u16)(gw[2]<<8) | (u16)gw[3];
}
void _GetGAR(u8 *gw)
{
gw[0] = W5300RW->GAR[0] >> 8;
gw[1] = W5300RW->GAR[0];
gw[2] = W5300RW->GAR[1] >> 8;
gw[3] = W5300RW->GAR[1];
}
void _SetSUBR(u8 * sn)
{
W5300RW->SUBR[0] = (u16)(sn[0]<<8) | (u16)sn[1];
W5300RW->SUBR[1] = (u16)(sn[2]<<8) | (u16)sn[3];
}
void _GetSUBR(u8 *sn)
{
sn[0] = W5300RW->SUBR[0] >> 8;
sn[1] = W5300RW->SUBR[0];
sn[2] = W5300RW->SUBR[1] >> 8;
sn[3] = W5300RW->SUBR[1];
}
void _SetSIPR(u8 * ip)
{
W5300RW->SIPR[0] = (u16)(ip[0]<<8) | (u16)ip[1];
W5300RW->SIPR[1] = (u16)(ip[2]<<8) | (u16)ip[3];
}
void _GetSIPR(u8 *ip)
{
/*ip[0] = W5300RW->SIPR[0];
ip[1] = W5300RW->SIPR[2];
ip[2] = W5300RW->SIPR[4];
ip[3] = W5300RW->SIPR[6];*/
}
void _SetRTR(u16 val)
{
W5300RW->RTR = val;
}
u16 _GetRTR(void)
{
return( W5300RW->RTR);
}
void _SetRCR(u8 val)
{
//W5300RW->RCR[2] = val;
W5300RW->RCR = val;
}
u8 _GetRCR(void)
{
return(W5300RW->RCR);
}
void _SetTMSR(u8 i,u8 val)
{
u8 temp;
u16 dat;
if(i%2)
{
temp = _GetTMSR(i-1);
dat = (u16)(temp << 8) + val;
}
else
{
temp = _GetTMSR(i+1);
dat = (u16)(val<<8) + temp;
}
W5300RW->TMSR[i/2] = dat;
}
u8 _GetTMSR(u8 i)
{
u16 temp;
u8 ret;
temp = W5300RW->TMSR[i/2];
if(i%2) ret = temp;
else ret = temp >> 8;
return(ret);
}
void _SetRMSR(u8 i,u8 val)
{
u8 temp;
u16 dat;
if(i%2)
{
temp = _GetRMSR(i-1);
dat = (u16)(temp << 8) + val;
}
else
{
temp = _GetRMSR(i+1);
dat = (u16)(val<<8) + temp;
}
W5300RW->RMSR[i/2] = dat;
}
u8 _GetRMSR(u8 i)
{
u16 temp;
u8 ret;
temp = W5300RW->RMSR[i/2];
if(i%2) ret = temp;
else ret = temp >> 8;
return(ret);
}
void _SetMTYPER(u16 val)
{
W5300RW->MTYPER = val;
}
u16 _GetMTYPER(u16 val)
{
return (W5300RW->MTYPER);
}
u16 _GetPATR(void)
{
return (W5300RW->PATR);
}
void _SetPTIMER(u8 val)
{
W5300RW->PTIMER = val;
}
u8 _GetPTIMER(void)
{
return(W5300RW->PTIMER);
}
void _SetPMAGICR(u8 val)
{
W5300RW->PMAGICR = val;
}
u8 _GetPMAGICR(void)
{
return(W5300RW->PMAGICR);
}
u16 _GetPSIDR(void)
{
return (W5300RW->PSIDR);
}
void _GetPDHAR(u8 *mac)
{
mac[0] = W5300RW->PDHAR[0] >> 8;
mac[1] = W5300RW->PDHAR[0];
mac[2] = W5300RW->PDHAR[1] >> 8;
mac[3] = W5300RW->PDHAR[1];
mac[4] = W5300RW->PDHAR[2] >> 8;
mac[5] = W5300RW->PDHAR[2];
}
void _GetUIPR(u8 * ip)
{
ip[0] = W5300RW->UIPR[0] >> 8;
ip[1] = W5300RW->UIPR[0];
ip[2] = W5300RW->UIPR[1] >> 8;
ip[3] = W5300RW->UIPR[1];
}
u16 _GetUPORTR(void)
{
return(W5300RW->UPORTR);
}
u16 _GetFMTUR(void)
{
return(W5300RW->FMTUR);
}
void _SetPnRDRYR(u8 n,u8 val)
{
if(n == 0)
W5300RW->P0_RDRYR = val & 0xE7;
else if(n == 1)
W5300RW->P1_RDRYR = val & 0xE7;
else if(n == 2)
W5300RW->P2_RDRYR = val & 0xE7;
else if(n == 3)
W5300RW->P3_RDRYR = val & 0xE7;
}
u8 _GetPnRDRYR(u8 n)
{
u8 val;
if(n == 0)
val = W5300RW->P0_RDRYR;
else if(n == 1)
val = W5300RW->P1_RDRYR;
else if(n == 2)
val = W5300RW->P2_RDRYR;
else if(n == 3)
val = W5300RW->P3_RDRYR;
else
val = 0xFF;
return val;
}
void _SetPnDPTHR(u8 n,u16 val)
{
if(n == 0)
{
W5300RW->P0_DPTHR = val;
}
else if(n == 1)
{
W5300RW->P1_DPTHR = val;
}
else if(n == 2)
{
W5300RW->P2_DPTHR = val;
}
else if(n == 3)
{
W5300RW->P3_DPTHR = val;
}
}
u16 _GetPnDPTHR(u8 n)
{
u16 val;
if(n == 0)
{
val = W5300RW->P0_DPTHR;
}
else if(n == 1)
{
val = W5300RW->P1_DPTHR;
}
else if(n == 2)
{
val = W5300RW->P2_DPTHR;
}
else if(n == 3)
{
val = W5300RW->P3_DPTHR;
}
else
val = 0xFFFF;
return val;
}
u16 _GetIDR(void)
{
return(W5300RW->IDR);
}
void _SetSxMR(u8 Sx, u16 flag)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
Sn->MR = flag;
}
u16 _GetSxMR(u8 Sx)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
return(Sn->MR);
}
void _SetSxCR(u8 Sx,u8 bCR)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
Sn->CR = bCR;
}
void _SetSxIMR(u8 Sx,u8 bIMR)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
Sn->IMR = bIMR;
}
u8 _GetSxIMR(u8 Sx)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
return(Sn->IMR);
}
void _SetSxIR(u8 Sx,u8 bIR)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
Sn->IR = bIR;
}
u8 _GetSxIR(u8 Sx)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
return(Sn->IR);
}
u8 _GetSxSSR(u8 Sx)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
return(Sn->SSR);
}
void _SetSxPORTR(u8 Sx, u16 port)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
Sn->PORTR = port;
}
u16 _GetSxPORTR(u8 Sx)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
return(Sn->PORTR);
}
void _SetSxDHAR(u8 Sx,u8 * mac)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
Sn->DHAR[0] = (u16)(mac[0]<<8) | (u16)mac[1];;
Sn->DHAR[1] = (u16)(mac[2]<<8) | (u16)mac[3];
Sn->DHAR[2] = (u16)(mac[4]<<8) | (u16)mac[5];
}
void _GetSxDHAR(u8 Sx,u8 * mac)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
mac[0] = Sn->DHAR[0] >> 8;
mac[1] = Sn->DHAR[0];
mac[2] = Sn->DHAR[1] >> 8;
mac[3] = Sn->DHAR[1];
mac[4] = Sn->DHAR[2] >> 8;
mac[5] = Sn->DHAR[2];
}
void _SetSxDPORTR(u8 Sx, u16 port)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
Sn->DPORTR = port;
}
u16 _GetSxDPORTR(u8 Sx)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
return(Sn->DPORTR);
}
void _SetSxDIPR(u8 Sx,u8 * ip)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
Sn->DIPR[0] = (u16)(ip[0]<<8) | (u16)ip[1];
Sn->DIPR[1] = (u16)(ip[2]<<8) | (u16)ip[3];
}
void _GetSxDIPR(u8 Sx,u8 * ip)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
ip[0] = Sn->DIPR[0] >> 8;
ip[1] = Sn->DIPR[0];
ip[2] = Sn->DIPR[1] >> 8;
ip[3] = Sn->DIPR[1];
}
void _SetSxMSSR(u8 Sx, u16 len)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
Sn->MSSR = len;
}
u16 _GetSxMSSR(u8 Sx)
{
pSOCKET Sn;
Sn = (pSOCKET)(SOCKET0_BASE + SOCKET_REG_SIZE * Sx);
return(Sn->MSSR);
}
void _SetSxKPALVTR(u8 Sx, u8 ka)
{
p
W5300基于STM32F2的参考代码
需积分: 5 56 浏览量
2024-03-03
15:30:03
上传
评论
收藏 8KB ZIP 举报
慕诗客
- 粉丝: 699
- 资源: 26
最新资源
- (完整)数据库课程设计餐厅点餐说明书-21ab6d3c8beb172ded630b1c59eef8c75ebf952c.doc
- 2023-04-06-项目笔记 - 第一百五十四阶段 - 4.4.2.152全局变量的作用域-152 -2024.06.04
- 松哥解协议松哥解协议松哥解协议松哥解协议松哥解协议
- 618节日618节日618节日
- tensorflow-gpu-2.9.1-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp39-cp39-win-amd64.whl
- lcd daimalcd daima
- 电影领域-推荐算法-个性化内容-观影决策-电影推荐小程序.zip
- 电气控制PLC考试题库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈