久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
stm32f4單片機W5500客戶端模式例程(TCP/IP)Keil源程序
[打印本頁]
作者:
筑夢守心
時間:
2022-9-13 14:27
標題:
stm32f4單片機W5500客戶端模式例程(TCP/IP)Keil源程序
stm32f4例程如下
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "usart.h"
#include "delay.h"
#include "spi.h"
#include "socket.h" // Just include one header for WIZCHIP
#include "string.h"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
#define SOCK_TCPS 0
#define DATA_BUF_SIZE 2048
/* Private macro -------------------------------------------------------------*/
uint8_t gDATABUF[DATA_BUF_SIZE];
uint8_t testDATABUF[52] = {0x78,0x75,0x6e,0x6a,0x69,0x00,0x34,0x84,0xef,0x40,0x82,0x01,0x76,0x0f,0x7d,0x04
,0x01,0x1c,0x63,0xc2,0xe0,0x00,0x84,0xff,0xbd,0x05,0x17,0x21,0x10,0x50,0x32,0x00
,0xfc,0x17,0x01,0x64,0x01,0x02,0x64,0x05,0x2b,0xc8,0xba,0x64,0x05,0x2b,0xcd,0xa8,0x4d,0xff,0xda,0xbf};
// Default Network Configuration
wiz_NetInfo gWIZNETINFO = { .mac = {0x00, 0x08, 0xdc,0x11, 0x11, 0x11},
.ip = {192, 168, 1, 07},
.sn = {255,255,255,0},
.gw = {192, 168, 0, 1},
.dns = {8,8,8,8},
.dhcp = NETINFO_STATIC };
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
void platform_init(void); // initialize the dependent host peripheral
void network_init(void); // Initialize Network information and display it
/****************************************************
函數名: main
形參: 無
返回值: 無
函數功能: 主函數
****************************************************/
int main(void)
{
uint8_t tmp;
uint16_t len=0;
uint8_t memsize[2][8] = {{2,2,2,2,2,2,2,2},{2,2,2,2,2,2,2,2}};
uint8_t DstIP[4]={192,168,1,100};
uint16_t DstPort=6000;
//Host dependent peripheral initialized
platform_init();
// First of all, Should register SPI callback functions implemented by user for accessing WIZCHIP
/* Critical section callback */
reg_wizchip_cris_cbfunc(SPI_CrisEnter, SPI_CrisExit); //注冊臨界區函數
/* Chip selection call back */
#if _WIZCHIP_IO_MODE_ == _WIZCHIP_IO_MODE_SPI_VDM_
reg_wizchip_cs_cbfunc(SPI_CS_Select, SPI_CS_Deselect);//注冊SPI片選信號函數
#elif _WIZCHIP_IO_MODE_ == _WIZCHIP_IO_MODE_SPI_FDM_
reg_wizchip_cs_cbfunc(SPI_CS_Select, SPI_CS_Deselect); // CS must be tried with LOW.
#else
#if (_WIZCHIP_IO_MODE_ & _WIZCHIP_IO_MODE_SIP_) != _WIZCHIP_IO_MODE_SIP_
#error "Unknown _WIZCHIP_IO_MODE_"
#else
reg_wizchip_cs_cbfunc(wizchip_select, wizchip_deselect);
#endif
#endif
/* SPI Read & Write callback function */
reg_wizchip_spi_cbfunc(SPI_ReadByte, SPI_WriteByte); //注冊讀寫函數
/* WIZCHIP SOCKET Buffer initialize */
if(ctlwizchip(CW_INIT_WIZCHIP,(void*)memsize) == -1){
printf("WIZCHIP Initialized fail.\r\n");
while(1);
}
/* PHY link status check */
do{
if(ctlwizchip(CW_GET_PHYLINK, (void*)&tmp) == -1){
printf("Unknown PHY Link stauts.\r\n");
}
}while(tmp == PHY_LINK_OFF);
/* Network initialization */
network_init();
while(1)
{
switch(getSn_SR(SOCK_TCPS)) // 獲取socket0的狀態
{
case SOCK_INIT: // Socket處于初始化完成(打開)狀態
connect(SOCK_TCPS,DstIP,DstPort);
break;
case SOCK_ESTABLISHED: // Socket處于連接建立狀態
if(getSn_IR(SOCK_TCPS) & Sn_IR_CON)
{
setSn_IR(SOCK_TCPS, Sn_IR_CON); // Sn_IR的CON位置1,通知W5500連接已建立
}
//send datapack
send(SOCK_TCPS,testDATABUF,52);
delay_ms(1000);
/*
// 數據回環測試程序:數據從上位機服務器發給W5500,W5500接收到數據后再回給服務器
len=getSn_RX_RSR(SOCK_TCPS); // len=Socket0接收緩存中已接收和保存的數據大小
if(len)
{
recv(SOCK_TCPS,gDATABUF,len);
printf("%s\r\n",gDATABUF);
send(SOCK_TCPS,gDATABUF,len);
} */
break;
case SOCK_CLOSE_WAIT: // Socket處于等待關閉狀態
disconnect(SOCK_TCPS);
break;
case SOCK_CLOSED: // Socket處于關閉狀態
socket(SOCK_TCPS,Sn_MR_TCP,5000,0x00); // 打開Socket0,打開一個本地端口
break;
}
}
}
/**
* @brief Intialize the network information to be used in WIZCHIP
* @retval None
*/
void network_init(void)
{
uint8_t tmpstr[6];
ctlnetwork(CN_SET_NETINFO, (void*)&gWIZNETINFO);
ctlnetwork(CN_GET_NETINFO, (void*)&gWIZNETINFO);
// Display Network Information
ctlwizchip(CW_GET_ID,(void*)tmpstr);
printf("\r\n=== %s NET CONF ===\r\n",(char*)tmpstr);
printf("MAC: %02X:%02X:%02X:%02X:%02X:%02X\r\n",gWIZNETINFO.mac[0],gWIZNETINFO.mac[1],gWIZNETINFO.mac[2],
gWIZNETINFO.mac[3],gWIZNETINFO.mac[4],gWIZNETINFO.mac[5]);
printf("SIP: %d.%d.%d.%d\r\n", gWIZNETINFO.ip[0],gWIZNETINFO.ip[1],gWIZNETINFO.ip[2],gWIZNETINFO.ip[3]);
printf("GAR: %d.%d.%d.%d\r\n", gWIZNETINFO.gw[0],gWIZNETINFO.gw[1],gWIZNETINFO.gw[2],gWIZNETINFO.gw[3]);
printf("SUB: %d.%d.%d.%d\r\n", gWIZNETINFO.sn[0],gWIZNETINFO.sn[1],gWIZNETINFO.sn[2],gWIZNETINFO.sn[3]);
printf("DNS: %d.%d.%d.%d\r\n", gWIZNETINFO.dns[0],gWIZNETINFO.dns[1],gWIZNETINFO.dns[2],gWIZNETINFO.dns[3]);
printf("======================\r\n");
}
/**
* @brief Loopback Test Example Code using ioLibrary_BSD
* @retval None
*/
void platform_init(void)
{
SystemInit();//系統時鐘初始化
USART_Configuration();//串口1初始化
//Config SPI
SPI_Configuration();
//延時初始化
delay_init(168);
}
復制代碼
Keil代碼下載:
W5500_TCPClient.7z
(457.4 KB, 下載次數: 29)
2022-9-13 23:47 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲免费成人
|
亚洲最新视频
|
亚洲 欧美 另类 综合 偷拍
|
久久综合99
|
久久观看
|
亚洲自拍偷拍一区
|
成人三级在线
|
久久精品小视频
|
欧美日韩精品久久久免费观看
|
欧美专区在线
|
午夜视频一区二区三区
|
中文字幕在线观看一区二区三区
|
午夜免费网站
|
国产91av视频
|
日韩精品福利
|
国产一区在线观看视频
|
香蕉av在线
|
午夜美女福利视频
|
精品三级在线观看
|
欧洲一级片
|
日韩黄色一级视频
|
国产精自产拍久久久久久蜜
|
亚洲一区视频
|
色香蕉视频
|
亚洲精品免费看
|
午夜av片
|
久久久久毛片
|
亚洲国产日本
|
午夜男人影院
|
国产一区欧美
|
成人91看片
|
欧美日韩小视频
|
青草久久久
|
丰满少妇高潮无套内谢
|
成人精品福利
|
涩久久
|
一本色道久久加勒比精品
|
黄色片中文字幕
|
午夜视频福利
|
欧美夜夜操
|
中文字幕免费在线
|