liba = 'libMPSSE';
libn = 'libMPSSE.dll';
loadlibrary(libn, 'libMPSSE_spi_matlabFriendly.h', 'alias', liba);
calllib(liba, 'Init_libMPSSE');
pChannelHandle = libpointer('voidPtr',255);
calllib(liba,'SPI_OpenChannel',0, pChannelHandle);
ChConfig.ClockRate = uint32(250e3);
ChConfig.LatencyTimer = uint8(2);
ChConfig.configOptions = uint32(0);
st = calllib(liba,'SPI_InitChannel',pChannelHandle,ChConfig); pause(0.1);
disp(st);
transfer_opt = 0;
w_buf = [1 , 2];
size_to_tr = 2;
p_w_buf = libpointer('uint8Ptr', uint8(w_buf));
p_size_trnsfred = libpointer('uint32Ptr', 1);
st = calllib(liba, 'SPI_Write', pChannelHandle, p_w_buf, uint32(size_to_tr), p_size_trnsfred, uint32(transfer_opt));
disp(st);
w_buf = [1 , 2];
size_to_tr = 2;
p_w_buf = libpointer('uint8Ptr', uint8(w_buf));
p_r_buf = libpointer('uint8Ptr', zeros(1, size_to_tr));
p_size_trnsfred = libpointer('uint32Ptr', 1);
st = calllib(liba, 'SPI_ReadWrite', pChannelHandle, p_r_buf, p_w_buf, uint32(size_to_tr), p_size_trnsfred, uint32(transfer_opt));
disp(st);
w_buf = [1 , 2];
size_to_tr = 2;
p_w_buf = libpointer('uint8Ptr', uint8(w_buf));
p_r_buf = libpointer('uint8Ptr', zeros(1, size_to_tr));
p_size_trnsfred = libpointer('uint32Ptr', 1);
st = calllib(liba, 'SPI_ReadWrite', pChannelHandle, p_r_buf, p_w_buf, uint32(size_to_tr), p_size_trnsfred, uint32(transfer_opt));
disp(st);
r_buf = p_r_buf.Value;
disp(r_buf);
1 Comment
Direct link to this comment
https://in.mathworks.com/matlabcentral/answers/518039-ftdi-libmpsse-0-6-spi_readwrite-weird-behaviour-loadlibrary-calllib#comment_1145708
Direct link to this comment
https://in.mathworks.com/matlabcentral/answers/518039-ftdi-libmpsse-0-6-spi_readwrite-weird-behaviour-loadlibrary-calllib#comment_1145708
Sign in to comment.