SPI适配器上位机底层函数使用代码 点击:238 | 回复:0



viewtool

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 0回
  • 年度积分:0
  • 历史总积分:41
  • 注册:2013年1月04日
发表于:2019-06-24 15:35:05
楼主

本程序用来读写测试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. unsigned char inString[10240];

  11. unsigned char outString[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. }

复制代码




热门招聘
相关主题

官方公众号

智造工程师