SPI適配器上位機底層函數使用代碼
發布時間:2019-06-25 15:35 類型:
基礎知識 人瀏覽
本程序用來讀寫測試25AA020A存儲器,測試代碼如下:
-
#include <stdio.h>
-
#include <Windows.h>
-
//定義SPI適配器底層函數的函數指針
-
typedef int(*SPI_Funtion)(char *in,char *out);
-
//定義存儲器操作的命令
-
#define CMD_READ_DATA 0X03
-
#define CMD_PAGE_PROGRAM 0X02
-
#define CMD_WRITE_ENABLE 0X06
-
//數據存儲區
-
unsignedcharinString[10240];
-
unsignedcharoutString[10240];
-
//主函數
-
int main(void)
-
{
-
// 加載DLL
-
HINSTANCE hDLL; //DLL句柄
-
hDLL = LoadLibrary("VT_SPI_Driver.dll");
-
//獲取SPI初始化函數指針地址
-
SPI_Funtion SPI_Init = (SPI_Funtion)GetProcAddress(hDLL,"VTIF_SPI_Init");
-
//獲取SPI寫數據函數指針地址
-
SPI_Funtion SPI_WriteData = (SPI_Funtion)GetProcAddress(hDLL,"VTIF_SPI_WriteData");
-
//獲取SPI讀數據函數指針地址
-
SPI_Funtion SPI_ReadData = (SPI_Funtion)GetProcAddress(hDLL,"VTIF_SPI_ReadData");
-
//獲取SPI寫讀數據函數指針地址
-
SPI_Funtion SPI_WriteReadData = (SPI_Funtion)GetProcAddress(hDLL,"VTIF_SPI_WriteReadData");
-
//獲取SPI設備選擇函數指針地址
-
SPI_Funtion SPI_SelectDevice = (SPI_Funtion)GetProcAddress(hDLL,"VTIF_SPI_SelectDevice");
-
//選擇SPI適配器
-
printf("選擇SPI適配器\n");
-
SPI_SelectDevice("0",(char*)outString);//選擇SPI適配器
-
printf("%s\n\n",outString);
-
//初始化SPI適配器
-
//數據格式為:“控制模式|時鐘極性|時鐘相位|主從模式|數據寬度|移位方向|片選極性|時鐘頻率”
-
printf("初始化SPI適配器\n");
-
SPI_Init("1|0|0|1|8|0|0|1000000",(char*)outString);//初始化SPI適配器
-
printf("%s\n\n",outString);
-
-
//控制SPI適配器寫數據0x06(使能SPI存儲器寫命令)
-
printf("控制SPI適配器寫數據0x06(使能SPI存儲器寫命令)\n");
-
SPI_WriteData("0x06",(char*)outString);
-
printf("%s\n\n",outString);
-
Sleep(1);
-
-
//控制SPI適配器寫數據(向SPI存儲器寫入數據,開頭的兩個字節為存儲器控制命令)
-
printf("控制SPI適配器寫數據(向SPI存儲器寫入數據,開頭的兩個字節為存儲器控制命令)\n");
-
SPI_WriteData("0x02|0x00|20|21|22|23|24|25|26|27|28|29",(char*)outString);
-
printf("%s\n\n",outString);
-
Sleep(1);
-
-
//控制SPI適配器從SPI存儲器中讀取10字節數據(開頭兩個字節為存儲器控制命令)
-
printf("控制SPI適配器從SPI存儲器中讀取10字節數據(開頭兩個字節為存儲器控制命令)\n");
-
SPI_WriteReadData("0x03|0x00|0x0A",(char*)outString);
-
printf("%s\n\n",outString);
-
Sleep(1);
-
-
FreeLibrary(hDLL);
-
system("pause");
-
return 0;
-
}
復制代碼
本文地址:http://m.xznet110.com/apply/d_1o196i6tft9p1_1.html
拷貝地址
版權聲明:版權歸中國自動化網所有,轉載請注明出處!