cth*_*lhu 0 c# dll spi raspberry-pi
我想在我的Raspberry上使用C#开始SPI通信。bcm2835库支持所需的命令,例如:
bcm2835_spi_begin()bcm2835_spi_end()在C中,您必须执行,#include < bcm2835.h >但在C#using bcm2835;中不起作用。
RaspberryPiDotNet已安装,并且bcm2835库也已安装。
可以通过GPIOMem使用bcm2835库的命令来控制GPIO引脚。
C#如何使用bcm2835的SPI命令?网上的所有内容都适用于C或C ++。
这是一个完整的教程,如何使其工作:
安装Mono:
sudo apt-get update
sudo apt-get install mono-complete
Run Code Online (Sandbox Code Playgroud)安装RaspberryPiDotNet:
mkdir gpio_csharp
git clone git://github.com/cypherkey/RaspberryPi.Net.git
cd RaspberryPi.Net/RaspberryPiDotNet
xbuild RaspberryPiDotNet.csproj
cp bin/Debug/RaspberryPiDotNet.dll /home/pi/gpio_csharp/
Run Code Online (Sandbox Code Playgroud)安装bcm2835库:
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.36.tar.gz
tar -zxf bcm2835-1.36.tar.gz
cd bcm2835-1.36
./configure
make
sudo make check
sudo make install
cd src
cc - shared bcm2835.o -o libbcm2835.so
cp libbcm2835.so /home/pi/gpio_csharp/
Run Code Online (Sandbox Code Playgroud)删除未使用的文件和文件夹:
使用此命令可以删除创建的文件夹和文件,但不能删除“ gpio_csharp”:
rm -r <folder>
rm <file>
Run Code Online (Sandbox Code Playgroud)创建一个C#脚本:
nano /home/pi/gpio_csharp/xxxxx.cs //xxxxx is your filename
CTRL + X //For exit and save script
Run Code Online (Sandbox Code Playgroud)在脚本中添加SPI命令:(
将其添加到程序的“类”空间中)
[DllImport("libbcm2835.so", EntryPoint = "bcm2835_spi_begin")]
static extern void spi_begin();
[DllImport("libbcm2835.so", EntryPoint = "bcm2835_spi_end")]
static extern void spi_end();
[DllImport("libbcm2835.so", EntryPoint = "bcm2835_spi_transfer")]
static extern byte spi_transfer(byte val);
[DllImport("libbcm2835.so", EntryPoint = "bcm2835_spi_chipSelect")]
static extern byte spi_chipSelect(GPIOPins pin);
[DllImport("libbcm2835.so", EntryPoint = "bcm2835_spi_setClockDivider")]
static extern byte spi_setClockDivider(int val);
[DllImport("libbcm2835.so", EntryPoint = "bcm2835_spi_setDataMode")]
static extern byte spi_setDataMode(int val);
[DllImport("libbcm2835.so", EntryPoint = "bcm2835_spi_setChipSelectPolarity")]
static extern byte spi_setChipSelectPolarity(GPIOPins pin, bool activeHigh);
Run Code Online (Sandbox Code Playgroud)在代码中使用命令:
现在,您可以使用以下命令来使用SPI。示例在页面下方。
spi_begin();
spi_end();
spi_transfer();
spi_chipSelect();
spi_setClockDivider();
spi_setDataMode();
spi_setChipSelectPolarity();
Run Code Online (Sandbox Code Playgroud)
例:
//SPI Try
spi_setClockDivider(128);
spi_setDataMode(0);
spi_chipSelect(cs);
spi_setChipSelectPolarity(cs, false);
spi_begin();
spi_transfer(0xAA);
spi_end();
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
4837 次 |
| 最近记录: |