Browse Source

at指令,MAC地址获取

external_Interrupt
tianjialong 2 years ago
parent
commit
7c13f6317b
  1. 55
      MDK-ARM/LWIP.uvguix.29643
  2. 33
      MDK-ARM/LWIP.uvoptx
  3. 18
      usersrc/atcmd.c
  4. 10
      usersrc/atcmd.h

55
MDK-ARM/LWIP.uvguix.29643
File diff suppressed because it is too large
View File

33
MDK-ARM/LWIP.uvoptx

@ -157,9 +157,9 @@
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>80</LineNumber>
<LineNumber>132</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134233272</Address>
<Address>134233550</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
@ -168,24 +168,35 @@
<BreakIfRCount>1</BreakIfRCount>
<Filename>..\usersrc\atcmd.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\LWIP\../usersrc/atcmd.c\80</Expression>
<Expression>\\LWIP\../usersrc/atcmd.c\132</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>198</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134253262</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>../Src/ethernetif.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\LWIP\../Src/ethernetif.c\198</Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>ip_address</ItemText>
<ItemText>MACAddr</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>p</ItemText>
</Ww>
<Ww>
<count>2</count>
<WinNumber>1</WinNumber>
<ItemText>len</ItemText>
<ItemText>heth.Init.MACAddr</ItemText>
</Ww>
</WatchWindow1>
<Tracepoint>
@ -262,7 +273,7 @@
<Group>
<GroupName>Application/User</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>

18
usersrc/atcmd.c

@ -4,6 +4,8 @@
#include <lwip/sockets.h>
#include "config.h"
extern ETH_HandleTypeDef heth;
#define at_address_cmd_template(_config_get) \
{ \
ip4_addr_t int_addr; \
@ -47,6 +49,7 @@ const AT_cmd_func at_cmd_func[] = {
{AT_CMD_GW, "AT+GW=", at_cmd_gw},
{AT_CMD_NETMASK, "AT+NETMASK=", at_cmd_netmask},
{AT_CMD_OBTAINING_IP_MODE, "AT+OBTAINING_IP_MODE=", at_cmd_obtaining_ip_mode},
{AT_CMD_MAC, "AT+MAC=", at_cmd_mac},
{AT_END, NULL, NULL}};
@ -122,6 +125,21 @@ AT_STATUS at_cmd_obtaining_ip_mode(unsigned char *p, unsigned char len)
return AT_SUCCESS;
}
AT_STATUS at_cmd_mac(unsigned char *p, unsigned char len)
{
if (*p == '?')
{
printf("mac:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x\r\n", //
heth.Init.MACAddr[0], heth.Init.MACAddr[1], heth.Init.MACAddr[2], //
heth.Init.MACAddr[3], heth.Init.MACAddr[4], heth.Init.MACAddr[5]); //
}
else
{
printf("AT+OK\r\n");
}
return AT_SUCCESS;
}
/* 查找指令表中对应的指令 */
unsigned char AT_cmd_search(unsigned char *p, unsigned char len)
{

10
usersrc/atcmd.h

@ -13,11 +13,12 @@ typedef enum
typedef enum
{
AT_CMD_TEST = 0, /* 测试指令 */
AT_CMD_IP, /* 设置IP */
AT_CMD_GW, /* 设置网关 */
AT_CMD_NETMASK, /* 设置子网掩码 */
AT_CMD_TEST = 0, /* 测试指令 */
AT_CMD_IP, /* 设置IP */
AT_CMD_GW, /* 设置网关 */
AT_CMD_NETMASK, /* 设置子网掩码 */
AT_CMD_OBTAINING_IP_MODE, /* 设置网络模式 */
AT_CMD_MAC, /* MAC地址 */
AT_END
} AT_Cmd;
@ -38,6 +39,7 @@ AT_STATUS at_cmd_ip(unsigned char *p, unsigned char len);
AT_STATUS at_cmd_gw(unsigned char *p, unsigned char len);
AT_STATUS at_cmd_netmask(unsigned char *p, unsigned char len);
AT_STATUS at_cmd_obtaining_ip_mode(unsigned char *p, unsigned char len);
AT_STATUS at_cmd_mac(unsigned char *p, unsigned char len);
unsigned char AT_cmd_search(unsigned char *p, unsigned char len);
AT_STATUS at_cmd_parse(unsigned char *p, unsigned char len);
void at_cmd_processer_push_data(uint8_t rxdata);

Loading…
Cancel
Save