RC522(RFID射頻模塊)讀卡ID的簡單應用

文章目錄

  • 一、RFID是什么?
  • 二、RC522模塊
  • 三、使用步驟
    • 1.硬件
      • 1.硬件連接
      • 2.引腳定義
    • 2.軟件
      • 1.初始化配置代碼如下(示例):
      • 2.引腳配置代碼如下(示例):
      • 3.模塊復位代碼如下(示例):
      • 4.關閉天線代碼如下(示例):
      • 5.打開天線代碼如下(示例):
      • 6.SPI寫字節代碼如下(示例):
      • 7.SPI讀字節代碼如下(示例):
      • 8.寫寄存器代碼如下(示例):
      • 9.讀寄存器代碼如下(示例):
      • 10.尋卡代碼如下(示例):
      • 11.防止多卡沖突代碼如下(示例):
      • 12.選定卡片代碼如下(示例):
      • 13.驗證卡片密碼代碼如下(示例):
      • 14.測試程序代碼如下(示例):
      • 15.測試結果(示例):
        • 1.演示視頻
        • 2.串口打印
  • 四.總結


一、RFID是什么?

射頻識別(RFID)是一種通過使用無線電波來識別和跟蹤物體的技術。它主要由一個小標簽和一個讀取器兩部分組成。

標簽是一種小型裝置,可以附在物體上。它里面有一個芯片和一個天線。芯片存儲了關于物體的信息,比如唯一的標識碼。天線用來接收和發送無線電信號。

讀取器是一個設備,可以與標簽進行通信。它發出無線電波,并接收標簽返回的信號。當讀取器接近標簽時,它能夠讀取標簽中存儲的信息。

通過使用射頻識別,我們可以追蹤和管理物體,因為每個標簽都有一個獨特的標識碼。例如,在物流和供應鏈管理中,可以使用RFID來跟蹤貨物的位置和狀態。在庫存管理中,可以使用RFID來自動記錄庫存量。在門禁系統中,可以使用RFID來驗證身份。

二、RC522模塊

MFRC522是應用于13.56MHz非接觸式通信中高集成度的讀寫卡芯片,是NXP公司針對“三表”應用推出的一款低電壓、低成本、體積小的非接觸式讀寫卡芯片,是智能儀表和便攜式手持設備研發的較好選擇。

MFRC522利用了先進的調制和解調概念,完全集成了在13.56MHZ下所有類型的被動非接觸式通信方式和協議。支持14443A兼容應答器信號。數字部分處理ISO14443A和錯誤檢測。支持快速CRYPTO1加密算法雙向數據傳輸速率高達848kbit/s64Byte收發FIFO緩沖器、可編程定時器、中斷、CRC協處理器內部自檢,硬件復位。

網上買回來的實物如下所示:
其中S50鑰匙卡和S50復旦卡工作頻率均為13.56MHZ。

在這里插入圖片描述

三、使用步驟

1.硬件

1.硬件連接

RC522 接口STM32引腳
SDA(數據接口)PA1
SCK(時鐘接口)PA2
MOSI(SPI 接口主出從入)PA3
MISO(SPI 接口主入從出)PA4
IRQPA5(沒用上,可不接 )
GND(地)GND
RST(復位信號)PA6
3.3V(電源)3.3V

2.引腳定義

/* Defines ------------------------------------------------------------------*/
#define RC522_GPIO_RCC  RCC_APB2Periph_GPIOA
#define RC522_GPIO_Port GPIOA
#define RC522_RST_Pin   GPIO_Pin_6//復位信號
#define RC522_IRQ_Pin   GPIO_Pin_5//中斷,沒用上,可不接
#define RC522_MISO_Pin  GPIO_Pin_4//MISO(SPI 接口主入從出)
#define RC522_MOSI_Pin  GPIO_Pin_3//MOSI(SPI 接口主出從入)
#define RC522_SCK_Pin   GPIO_Pin_2//SCK(時鐘接口)
#define RC522_SDA_Pin   GPIO_Pin_1//SDA(數據接口)//根據實際的引腳修改

2.軟件

1.初始化配置代碼如下(示例):

/******************************************************************************** 函數名:User_RC522_Init* 描述  :RC522初始化* 輸入  :void* 輸出  :void* 調用  :初始化* 備注  :
*******************************************************************************/
void User_RC522_Init(void)
{RC522_GPIO_Init();RC522_RESET();Turn_off_Antenna();delay_syms(1);Open_on_Antenna();
}

2.引腳配置代碼如下(示例):

/******************************************************************************** 函數名:RC522_GPIO_Init* 描述  :RC522引腳配置初始化* 輸入  :void* 輸出  :void* 調用  :初始化* 備注  :
*******************************************************************************/
void RC522_GPIO_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RC522_GPIO_RCC, ENABLE);GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽輸出   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Pin = RC522_RST_Pin | RC522_MOSI_Pin | RC522_SCK_Pin | RC522_SDA_Pin;		GPIO_Init(RC522_GPIO_Port, &GPIO_InitStructure);			GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入 GPIO_InitStructure.GPIO_Pin =  RC522_MISO_Pin;			GPIO_Init(RC522_GPIO_Port, &GPIO_InitStructure);	
}

3.模塊復位代碼如下(示例):

/******************************************************************************** 函數名:RC522_RESET* 描述  :RC522模塊復位* 輸入  :void* 輸出  :uint8_t* 調用  :* 備注  :
*******************************************************************************/
uint8_t RC522_RESET(void)
{RC522_RST_HIGH();delay_syms(1);	RC522_RST_LOW();delay_syms(1);	RC522_RST_HIGH();delay_syms(1);	WriteRawRC(CommandReg,PCD_RESETPHASE);delay_syms(1);	   WriteRawRC(ModeReg,0x3D);//和Mifare卡通訊,CRC初始值0x6363WriteRawRC(TReloadRegL,30);           WriteRawRC(TReloadRegH,0);WriteRawRC(TModeReg,0x8D);WriteRawRC(TPrescalerReg,0x3E); WriteRawRC(TxAutoReg,0x40);//調制發送信號為100%ASK(特別注意)return MI_OK;
}

4.關閉天線代碼如下(示例):

/******************************************************************************** 函數名:Turn_off_Antenna* 描述  :關閉天線* 輸入  :void* 輸出  :void* 調用  :* 備注  :
*******************************************************************************/
void Turn_off_Antenna(void)
{ClearBitMask(TxControlReg, 0x03);	
}

5.打開天線代碼如下(示例):

/******************************************************************************** 函數名:Open_on_Antenna* 描述  :打開天線* 輸入  :void* 輸出  :void* 調用  :* 備注  :每次啟動或關閉天險發射之間應至少有1ms的間隔
*******************************************************************************/
void Open_on_Antenna(void)
{uint8_t i;i = ReadRawRC(TxControlReg);if (!(i & 0x03)){SetBitMask(TxControlReg, 0x03);}
}

6.SPI寫字節代碼如下(示例):

/******************************************************************************** 函數名:SPI_Send_Byte* 描述  :SPI寫字節* 輸入  :byte* 輸出  :void* 調用  :* 備注  :
*******************************************************************************/
void SPI_Send_Byte(uint8_t byte)
{uint8_t i;	for(i = 0; i < 8; i++){     if(byte & 0x80){RC522_MOSI_HIGH();}else {RC522_MOSI_LOW();}delay_syms(1);	RC522_SCK_LOW();delay_syms(1);			 RC522_SCK_HIGH();delay_syms(1);			 byte <<= 1; 			} 	
}

7.SPI讀字節代碼如下(示例):

/******************************************************************************** 函數名:SPI_Read_Byte* 描述  :SPI讀字節* 輸入  :byte* 輸出  :void* 調用  :* 備注  :
*******************************************************************************/
uint8_t SPI_Read_Byte(void)
{uint8_t i;uint8_t Data; for(i = 0; i < 8; i++){Data <<= 1;	 RC522_SCK_LOW(); delay_syms(1);			if(MISO_IN_Read() == 1){Data |= 0x01;}delay_syms(1);	RC522_SCK_HIGH();	delay_syms(1);			}return Data;
}

8.寫寄存器代碼如下(示例):

/******************************************************************************** 函數名:WriteRawRC* 描述  :RC522寫寄存器* 輸入  :Address[IN]:寄存器地址,value[IN]:寫入的* 輸出  :void* 調用  :* 備注  :
*******************************************************************************/
void WriteRawRC(uint8_t Address, uint8_t value)
{  uint8_t ucAddr;ucAddr = ((Address<<1)&0x7E);RC522_SDA_LOW();SPI_Send_Byte(ucAddr);	SPI_Send_Byte(value);	RC522_SDA_HIGH();
}

9.讀寄存器代碼如下(示例):

/******************************************************************************** 函數名:ReadRawRC* 描述  :RC522讀寄存器* 輸入  :Address[IN]:寄存器地址* 輸出  :void* 調用  :* 備注  :
*******************************************************************************/
uint8_t ReadRawRC(uint8_t Address)
{uint8_t ucAddr,ucResult;ucAddr = ((Address<<1)&0x7E)|0x80; 	RC522_SDA_LOW();	SPI_Send_Byte(ucAddr);	ucResult = SPI_Read_Byte();RC522_SDA_HIGH();return ucResult;		 
}

10.尋卡代碼如下(示例):

/******************************************************************************** 函數名:Search_card* 描述  :RC522尋卡* 輸入  :req_code[IN]:尋卡方式0x52 = 尋感應區內所有符合14443A標準的卡0x26 = 尋未進入休眠狀態的卡pTagType[OUT]:卡片類型代碼0x4400 = Mifare_UltraLight0x0400 = Mifare_One(S50)0x0200 = Mifare_One(S70)0x0800 = Mifare_Pro(X)0x4403 = Mifare_DESFire* 輸出  :成功返回MI_OK* 調用  :* 備注  :
*******************************************************************************/
uint8_t Search_card(uint8_t req_code,uint8_t *pTagType)
{uint8_t status;  uint16_t unLen;uint8_t ucComMF522Buf[MAXRLEN]; ClearBitMask(Status2Reg,0x08);WriteRawRC(BitFramingReg,0x07);SetBitMask(TxControlReg,0x03); ucComMF522Buf[0] = req_code;status = Communication_card(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen);   if ((status == MI_OK) && (unLen == 0x10)){    *pTagType     = ucComMF522Buf[0];*(pTagType+1) = ucComMF522Buf[1];}else{  status = MI_ERR;   } return status;
}

11.防止多卡沖突代碼如下(示例):

/******************************************************************************** 函數名:Anti_collision* 描述  :防沖撞* 輸入  :pSnr[OUT]:卡片序列號,4字節* 輸出  :成功返回MI_OK* 調用  :* 備注  :
*******************************************************************************/
uint8_t Anti_collision(uint8_t *pSnr)
{uint8_t status;uint8_t i,snr_check=0;uint16_t  unLen;uint8_t ucComMF522Buf[MAXRLEN]; ClearBitMask(Status2Reg,0x08);WriteRawRC(BitFramingReg,0x00);ClearBitMask(CollReg,0x80); ucComMF522Buf[0] = PICC_ANTICOLL1;ucComMF522Buf[1] = 0x20;status = Communication_card(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen);if (status == MI_OK){for (i=0; i<4; i++){   *(pSnr+i)  = ucComMF522Buf[i];snr_check ^= ucComMF522Buf[i];}if (snr_check != ucComMF522Buf[i]){   status = MI_ERR;    }}   SetBitMask(CollReg,0x80);return status;
}

12.選定卡片代碼如下(示例):

/******************************************************************************** 函數名:Selected_card* 描述  :選定卡片* 輸入  :pSnr[IN]:卡片序列號,4字節* 輸出  :成功返回MI_OK* 調用  :* 備注  :
*******************************************************************************/
uint8_t Selected_card(uint8_t *pSnr)
{uint8_t status;uint8_t i;uint16_t unLen;uint8_t ucComMF522Buf[MAXRLEN];   ucComMF522Buf[0] = PICC_ANTICOLL1;ucComMF522Buf[1] = 0x70;ucComMF522Buf[6] = 0;for (i=0; i<4; i++){ucComMF522Buf[i+2] = *(pSnr+i);ucComMF522Buf[6]  ^= *(pSnr+i);}CalulateCRC(ucComMF522Buf,7,&ucComMF522Buf[7]);  ClearBitMask(Status2Reg,0x08);status = Communication_card(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&unLen);    if ((status == MI_OK) && (unLen == 0x18)){   status = MI_OK;}else{  status = MI_ERR;    }return status;
}

13.驗證卡片密碼代碼如下(示例):

/******************************************************************************** 函數名:Verify_card* 描述  :驗證卡片密碼* 輸入  :auth_mode[IN]: 密碼驗證模式0x60 = 驗證A密鑰0x61 = 驗證B密鑰 addr[IN]:塊地址pKey[IN]:密碼pSnr[IN]:卡片序列號,4字節* 輸出  :成功返回MI_OK* 調用  :* 備注  :
*******************************************************************************/
uint8_t Verify_card(uint8_t auth_mode,uint8_t addr,uint8_t *pKey,uint8_t *pSnr)
{uint8_t status;uint16_t unLen;uint8_t i,ucComMF522Buf[MAXRLEN]; ucComMF522Buf[0] = auth_mode;ucComMF522Buf[1] = addr;for (i=0; i<6; i++){    ucComMF522Buf[i+2] = *(pKey+i);  }for (i=0; i<6; i++){    ucComMF522Buf[i+8] = *(pSnr+i); }    status = Communication_card(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen);if ((status != MI_OK) || (!(ReadRawRC(Status2Reg) & 0x08))){   status = MI_ERR;}   return status;
}

14.測試程序代碼如下(示例):

/******************************************************************************** 函數名:RC522_Test* 描述  :RC522測試* 輸入  :void* 輸出  :void* 調用  :* 備注  :
*******************************************************************************/
void RC522_Test(void)
{uint8_t i;status = Search_card(PICC_REQALL, g_ucTempbuf);//尋天線區內全部卡if(status == MI_OK)//尋卡成功{ status = MI_ERR;status = Anti_collision(g_ucTempbuf);//防卡片沖突}			 if(status == MI_OK)//防沖突檢測成功{ status = MI_ERR;status = Selected_card(g_ucTempbuf);//選定卡片}if(status == MI_OK)//選定卡片成功{ Beep_Test();status = MI_ERR;Uart1Prints(g_ucTempbuf);for(i = 0;i < 4; i++){Byte2Str(g_ucTempbuf[i], &g_ucTempbuf_str[i*2]);}LCD_Clear_Str(WHITE);//清屏LCD_Fill(40,80,128,128,POINT_COLOR);		 status = Verify_card(PICC_AUTHENT1A, 1, DefaultKey, g_ucTempbuf);//驗證卡片密碼}Sleep_card();//進入休眠狀態	 
}

顯示ID部分,這里的顯示是用1.44寸彩屏顯示的,不懂的話可以參考我的另外一篇博客:1.44寸TFT彩屏(SPI接口)圖像顯示應用

      Gui_Drawbmp16(0,0,gImage_xiaobuding);				Show_Str(10,80,RED,WHITE,"ID:",20,1);			Show_Str(40,80,RED,WHITE,(u8*)(g_ucTempbuf_str),20,1);	

15.測試結果(示例):

1.演示視頻

測試視頻內容就是先拿IC鑰匙扣去刷,可以聽到清脆的蜂鳴器叫聲,并識別到卡片ID為90C00155,接著拿S50復旦卡去刷,可以聽到清脆的蜂鳴器叫聲,并識別到卡片ID為03878D03。

RC522測試視頻

2.串口打印

串口打印內容就是先拿IC鑰匙扣去刷,打印卡片ID為90C00155,接著拿S50復旦卡去刷,打印卡片ID為03878D03。

在這里插入圖片描述


四.總結

今天主要實現了用RFID射頻模塊來讀取IC鑰匙扣以及S50復旦卡的ID,至于實現扣款和充值錢包功能等感興趣的可以下載附件試試,感謝你的觀看,謝謝!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212077.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212077.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212077.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

11、虛函數、多態、純虛函數

11、虛函數、多態、純虛函數 虛函數覆蓋調用 多態實現多態的兩個必要條件多態 和 this指針多態的實現&#xff1a;虛函數表虛函數表與動態綁定動態綁定動態綁定對性能的影響 純虛函數抽象類純抽象類 虛函數 形如class 類名{ virtual 返回值 函數名(形參表) { … } }; 的成員函…

C++筆記之Delegate和委托構造(Delegating constructor)

C筆記之Delegate和委托構造辨析 code review! —— 杭州 2023-12-10 文章目錄 C筆記之Delegate和委托構造辨析0.有道詞典&#xff1a;英語發音1.ChatGPT&#xff1a;delegate概念詳解2.Delegate和“將可調用對象作為函數參數”是不是一回事&#xff1f;3.C的Delegate示例4.…

Numpy矩陣(第16講)

Numpy矩陣(第16講) ??????? ??博主 侯小啾 感謝您的支持與信賴。?? ??????????????????????????????????????????????????????????????????????????????????????????…

認識計算機的設備管理

在計算機系統中&#xff0c;除了處理器和內存之外&#xff0c;其他的大部分硬設備稱為外部設備。它包括輸入/輸出設備&#xff0c;輔存設備及終端設備等。這些設備種類繁多&#xff0c;特性各異&#xff0c;操作方式的差異很大&#xff0c;從而使操作系統的設備管理變得十分繁雜…

【數據結構】哈希表算法總結

知識概覽&#xff08;哈希表&#xff09; 哈希表可以將一些值域較大的數映射到較小的空間內&#xff0c;通常用x mod 質數的方式進行映射。為什么用質數呢&#xff1f;這樣的質數還要離2的整數冪盡量遠。這可以從數學上證明&#xff0c;這樣沖突最小。取余還是會出現沖突情況。…

《三十一》開發模式構建工具 Vite

20的40分鐘之前還沒看。 20的1小時15分 基于 Vite2。 在實際開發中&#xff0c;編寫的代碼往往是不能被瀏覽器直接識別的&#xff0c;例如 ES6、React、Vue、TypeScript 等&#xff0c;必須通過構建工具來對代碼進行轉換、編譯&#xff0c;例如 Webpack、Rolluop、Vite 等。 V…

c++模板學習筆記

模板 函數模板類模板 函數模板 函數模板的格式為&#xff1a; template<typename T1,typename T2...> 函數返回值類型 函數名(參數列表) {//函數體 }typename是定義模板參數的關鍵字&#xff0c;可以使用class來代替&#xff08;不能使用struct&#xff09; 函數模板本…

【數據結構 — 排序 — 選擇排序】

數據結構 — 排序 — 選擇排序 一.選擇排序1.基本思想2.直接選擇排序2.1算法講解2.2.代碼實現2.2.1.函數定義2.2.2.算法接口實現2.2.3.測試代碼實現2.2.4.測試展示 3.堆排序3.1.算法講解3.2.代碼實現3.2.1.函數定義3.2.2.算法接口實現3.2.3.測試代碼實現3.2.4.測試展示 一.選擇…

Docker創建mqtt容器mosquitto

#1.創建映射到主機的配置文件/bwss/agent/docker/mosquitto_public/config/mosquitto.conf 內容為&#xff1a; listener 51883 0.0.0.0 # 0.0.0.0 allow_anonymous false persistence false persistence_location /mosquitto/data password_file /mosquitto/config/passwd …

Java 8 新特性深度解析:探索 Lambda 表達式、Stream API 和函數式編程的革新之路

Java8 新特性 Java 8 的革新之路 自 1995 年首次發布以來&#xff0c;Java 已經成為世界上最廣泛使用的編程語言之一。隨著時間的推移&#xff0c;Java 經歷了多次版本更新&#xff0c;其中最具里程碑意義的便是 Java 8 的發布。這個版本引入了許多重大變革&#xff0c;包括 …

開發猿的平平淡淡周末---2023/12/10

天氣陰 溫度適宜17攝氏度 AM 昨晚竟然下小雨了&#xff0c;還好還好&#xff0c;昨天刷的兩個背包基本干了 一覺睡到日三竿&#xff0c;誰是神仙&#xff0c;我是神仙&#xff08;哈哈哈哈哈哈&#xff09; 刷會兒視頻 補充下起床的動力 洗漱&#xff0c;恰飯&#xff0c;肝…

電工--基本放大電路

電壓放大倍數、輸入電阻和輸出電阻是放大電路的三個主要性能指標 共發射極基本交流放大電路 晶體管&#xff1a;電流放大作用。能量較小的輸入信號通過晶體管的控制作用&#xff0c;去控制電源所共給的能量&#xff0c;以在輸出端獲得一個能量較大的信號 集電極電源電壓&#…

traj_dist 筆記:測量軌跡距離

python 筆記 &#xff1a;trajectory_distance包&#xff08;如何可以正確使用&#xff09;【debug篇】-CSDN博客 經過前面的debug后&#xff0c;在setup.py對應的位置&#xff0c;寫代碼&#xff08;直接在別處import traj_dist我還是出問題&#xff09; 1 新建軌跡 import…

電子學會C/C++編程等級考試2021年12月(五級)真題解析

C/C++等級考試(1~8級)全部真題?點這里 第1題:書架 John最近買了一個書架用來存放奶牛養殖書籍,但書架很快被存滿了,只剩最頂層有空余。 John共有N頭奶牛(1 ≤ N ≤ 20,000),每頭奶牛有自己的高度Hi(1 ≤ Hi ≤ 10,000),N頭奶牛的總高度為S。書架高度為B(1 ≤ B ≤ S &…

[LeetCode周賽復盤] 第 375 場周賽20231210

[LeetCode周賽復盤] 第 375 場周賽20231210 一、本周周賽總結100143. 統計已測試設備1. 題目描述2. 思路分析3. 代碼實現 100155. 雙模冪運算1. 題目描述2. 思路分析3. 代碼實現 100137. 統計最大元素出現至少 K 次的子數組1. 題目描述2. 思路分析3. 代碼實現 100136. 統計好分…

Java中多態的一些簡單理解

什么是多態 1.面向對象的三大特性&#xff1a;封裝、繼承、多態。從一定角度來看&#xff0c;封裝和繼承幾乎都是為多態而準備的。這是我們最后一個概念&#xff0c;也是最重要的知識點。 2.多態的定義&#xff1a;指允許不同類的對象對同一消息做出響應。即同一消息可以根據發…

Linux用戶和權限

一、認知root用戶 1.1 了解什么是root用戶&#xff08;超級管理員&#xff09; root用戶&#xff08;超級管理員&#xff09; 無論是Windows、MacOS、Linux均采用多用戶的管理模式進行權限管理。 在Linux系統中&#xff0c;擁有最大權限的賬戶名為&#xff1a;root&#x…

Java9及之后關于類加載器的新特性

為了保證兼容性&#xff0c;JDK9沒有從根本上改變三層類加載器的架構和雙親委派模型&#xff0c;但為了模塊化系統的順利運行&#xff0c;仍然發生了一些值得被注意的變動。 一、變動1 由于引入了模塊化概念&#xff0c;所以不同的類加載器回去加載屬于不同模塊的類 啟動類加…

Nginx負載均衡實戰

&#x1f3b5;負載均衡組件 ngx_http_upstream_module https://nginx.org/en/docs/http/ngx_http_upstream_module.html upstream模塊允許Nginx定義一組或多組節點服務器組&#xff0c;使用時可以通過多種方式去定義服務器組 樣例&#xff1a; upstream backend {server back…

從零開發短視頻電商 在AWS SageMaker已創建的模型列表中進行部署

1.導航到 SageMaker 控制臺。 2.在 SageMaker 控制臺的左側導航欄中&#xff0c;選擇 “模型” 選項。 3.在模型列表中&#xff0c;找到您要部署的模型。選擇該模型。 4.點擊 “創建端點” 選項或者點擊 “創建端點配置” 選項都可以進行部署。 選擇創建端點進去后還是會進行…