当前位置:自动化网>深圳市纬图物联技术有限公司门户>应用案例>SPI适配器上位机底层函数使用代码

SPI适配器上位机底层函数使用代码

发布时间:2019-06-25 15:35   类型:基础知识   人浏览
本程序用来读写测试25AA020A存储器,测试代码如下:
  1. #include <stdio.h>
  2. #include <Windows.h>
  3. //定义SPI适配器底层函数的函数指针
  4. typedef int(*SPI_Funtion)(char *in,char *out);
  5. //定义存储器操作的命令
  6. #define CMD_READ_DATA               0X03
  7. #define CMD_PAGE_PROGRAM            0X02
  8. #define CMD_WRITE_ENABLE            0X06
  9. //数据存储区
  10. unsignedcharinString[10240];
  11. unsignedcharoutString[10240];
  12. //主函数
  13. int main(void)
  14. {
  15.         // 加载DLL
  16.         HINSTANCE hDLL;    //DLL句柄
  17.         hDLL = LoadLibrary("VT_SPI_Driver.dll");
  18.         //获取SPI初始化函数指针地址
  19.         SPI_Funtion SPI_Init = (SPI_Funtion)GetProcAddress(hDLL,"VTIF_SPI_Init");
  20.         //获取SPI写数据函数指针地址
  21.         SPI_Funtion SPI_WriteData = (SPI_Funtion)GetProcAddress(hDLL,"VTIF_SPI_WriteData");
  22.         //获取SPI读数据函数指针地址
  23.         SPI_Funtion SPI_ReadData = (SPI_Funtion)GetProcAddress(hDLL,"VTIF_SPI_ReadData");
  24.         //获取SPI写读数据函数指针地址
  25.         SPI_Funtion SPI_WriteReadData = (SPI_Funtion)GetProcAddress(hDLL,"VTIF_SPI_WriteReadData");
  26.         //获取SPI设备选择函数指针地址
  27.         SPI_Funtion SPI_SelectDevice = (SPI_Funtion)GetProcAddress(hDLL,"VTIF_SPI_SelectDevice");
  28.         //选择SPI适配器
  29.         printf("选择SPI适配器\n");
  30.         SPI_SelectDevice("0",(char*)outString);//选择SPI适配器
  31.         printf("%s\n\n",outString);
  32.         //初始化SPI适配器
  33.         //数据格式为:“控制模式|时钟极性|时钟相位|主从模式|数据宽度|移位方向|片选极性|时钟频率”
  34.         printf("初始化SPI适配器\n");
  35.         SPI_Init("1|0|0|1|8|0|0|1000000",(char*)outString);//初始化SPI适配器
  36.         printf("%s\n\n",outString);

  37.         //控制SPI适配器写数据0x06(使能SPI存储器写命令)
  38.         printf("控制SPI适配器写数据0x06(使能SPI存储器写命令)\n");
  39.         SPI_WriteData("0x06",(char*)outString);
  40.         printf("%s\n\n",outString);
  41.         Sleep(1);

  42.         //控制SPI适配器写数据(向SPI存储器写入数据,开头的两个字节为存储器控制命令)
  43.         printf("控制SPI适配器写数据(向SPI存储器写入数据,开头的两个字节为存储器控制命令)\n");
  44.         SPI_WriteData("0x02|0x00|20|21|22|23|24|25|26|27|28|29",(char*)outString);
  45.         printf("%s\n\n",outString);
  46.         Sleep(1);

  47.         //控制SPI适配器从SPI存储器中读取10字节数据(开头两个字节为存储器控制命令)
  48.         printf("控制SPI适配器从SPI存储器中读取10字节数据(开头两个字节为存储器控制命令)\n");
  49.         SPI_WriteReadData("0x03|0x00|0x0A",(char*)outString);
  50.         printf("%s\n\n",outString);
  51.         Sleep(1);

  52.         FreeLibrary(hDLL);
  53.         system("pause");
  54.         return 0;
  55. }
复制代码

本文地址:http://www.ca800.com/apply/d_1o196i6tft9p1_1.html

拷贝地址

版权声明:版权归中国自动化网所有,转载请注明出处!

留言反馈
  • 评价:

  • 关于:

  • 联系人:

  • 联系电话:

  • 联系邮箱:

  • 需求意向:

  • 验证码:

    看不清楚?