日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32F407通过SPI连接W5100S进行TCP网络通信

發布時間:2023/12/29 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32F407通过SPI连接W5100S进行TCP网络通信 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

STM32F407通過SPI連接W5100S進行網絡通信
一、W5100S硬件
1.HS-NM5100SA模塊
模塊廠家:成都浩然電子http://www.hschip.com
HS-NM5100SA以太網絡控制器接口模塊是將W5100S與必要的外圍元器件集成在一塊電路板上,為客戶提供便利應用的產品。
1. 它保持了W5100S的全部功能和性能;
2. 將W5100S與MCU接口(SPI接口和并行總線接口)通過排針引出;
3. RJ-45座內部集成網絡變壓器,網線可直接與模塊連接;
4. RJ-45上的指示燈可以指示W5100S的以太網連接狀態;
5. 直流3.3V供電;
6. 嚴格的老化測試保證產品優質的品質。


2.設置通信模式
模塊集成了總線模式和SPI模式,通過W5100S的MOD[3~0]進行選擇

模塊背面有電阻用來設置總線模式或SPI模式,設置方式如下圖:

模塊原理圖

二.與單片機連接
使用單片機SPI1接口與W5100S模塊連接
包括:

  • 4根SPI線
  • 1根W5100S硬件復位線
  • 3.3V供電
  • 單片機SPI配置復用模式,片選信號配置成輸出模式

    //SPI1初始化 配置成主機模式 //SPI1 RCC_APB2=84M void W5100S_SPI_Init(void) {SPI_InitTypeDef SPI_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOA時鐘 RCC_APB2PeriphClockCmd( RCC_APB2Periph_SPI1, ENABLE);/* Configure SPIy pins: SCK, MISO and MOSI */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; //PA5/6/7GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//復用功能GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽輸出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHzGPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_PinAFConfig(GPIOA,GPIO_PinSource5,GPIO_AF_SPI1); //PA5復用為 SPI1GPIO_PinAFConfig(GPIOA,GPIO_PinSource6,GPIO_AF_SPI1); //PA6復用為 SPI1GPIO_PinAFConfig(GPIOA,GPIO_PinSource7,GPIO_AF_SPI1); //PA7復用為 SPI1/*Init CS*/GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_SetBits(GPIOA, GPIO_Pin_4);/* SPI Config -------------------------------------------------------------*/SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;SPI_InitStructure.SPI_Mode = SPI_Mode_Master;SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; //時鐘空閑狀態為低電平SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;//時鐘的第1個跳變沿SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;//波特率預分頻SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;SPI_InitStructure.SPI_CRCPolynomial = 7;SPI_Init(SPI1, &SPI_InitStructure);SPI_Cmd(SPI1, ENABLE);//使能SPI外設 }

    W5100S復位引腳配置成輸出模式

    //W5100S復位引腳 PA12 #define W5100S_RSTn GPIO_Pin_12 #define W5100S_RSTn_PORT GPIOA #define W5100S_RSTn_CLK RCC_AHB1Periph_GPIOA //初始化W5100S復位引腳 W5100S_RSTn void Reset_GPIO_Config(void) //初始化W5100S復位引腳 {GPIO_InitTypeDef GPIO_InitStructure;RCC_AHB1PeriphClockCmd(W5100S_RSTn_CLK, ENABLE);//掛載外設時鐘 GPIO_InitStructure.GPIO_Pin = W5100S_RSTn; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//推挽輸出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //設置最高輸出速率GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽輸出 GPIO_Init(W5100S_RSTn_PORT, &GPIO_InitStructure);//GPIO_SetBits(W5100S_RSTn_PORT, W5100S_RSTn); //高電平}

    三、程序源碼
    STM32F407源碼已上傳到我的資源https://download.csdn.net/download/sgjiajia/13130744點擊進入
    STM32F407通過W5100S進行網絡通信.rar
    例程包括:SPI模式和FSMC總線模式
    包含TCP_Server服務器模式和TCP_Client客戶端模式

    僅需通過修改自定義參數選擇SPI模式或FSMC總線模式

    總結

    以上是生活随笔為你收集整理的STM32F407通过SPI连接W5100S进行TCP网络通信的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。