首页 资讯 农业 汽车 房产 科技 养老 教育 展会 自媒体
智能 互联网 摄影 手机 VR

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

来源:互联网 作者:高晓娜 人气: 发布时间:2018-12-05


本程序用来读写测试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
//数据存储区
unsigned char inString[10240];
unsigned char outString[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("%snn",outString);
? ? ? ? //初始化SPI适配器
? ? ? ? //数据格式为:“控制模式|时钟极性|时钟相位|主从模式|数据宽度|移位方向|片选极性|时钟频率”
? ? ? ? printf("初始化SPI适配器n");
? ? ? ? SPI_Init("1|0|0|1|8|0|0|1000000",(char*)outString);//初始化SPI适配器
? ? ? ? printf("%snn",outString);
?
? ? ? ? //控制SPI适配器写数据0x06(使能SPI存储器写命令)
? ? ? ? printf("控制SPI适配器写数据0x06(使能SPI存储器写命令)n");
? ? ? ? SPI_WriteData("0x06",(char*)outString);
? ? ? ? printf("%snn",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("%snn",outString);
? ? ? ? Sleep(1);
?
? ? ? ? //控制SPI适配器从SPI存储器中读取10字节数据(开头两个字节为存储器控制命令)
? ? ? ? printf("控制SPI适配器从SPI存储器中读取10字节数据(开头两个字节为存储器控制命令)n");
? ? ? ? SPI_WriteReadData("0x03|0x00|0x0A",(char*)outString);
? ? ? ? printf("%snn",outString);
? ? ? ? Sleep(1);
?
? ? ? ? FreeLibrary(hDLL);
? ? ? ? system("pause");
? ? ? ? return 0;
}
复制代码




免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
责任编辑:高晓娜
地址: 辽宁省大连市中山区港湾街20号名仕财富中心B座1517室 联系电话: 0411-84950851
© 2017 大连华纳文化传媒有限公司 All rights reserved
经营许可证编号:辽B2-20170212 备案号:辽ICP备17007383号-2
辽公网安备 21021102000241