常用外设C语言接口

Chinese, Simplified

1.      概述

本文介绍c/c++程序在AmLink平台上访问部分常用外设的方法。接口的支持情况跟固件版本有关,使用前请联系我们(support@temolin.com)确认

2.       API

I2C接口

I2c访问的设备节点是/dev/i2c-n    (n=0-3)。使用方法:

初始化:
  fd =open(filename, O_RDWR);

ioctl(fd, I2C_SLAVE_FORCE, addr)     //addr是7位slave地址

 

读数据:

read(fd,buf,len);

写数据:

write(fd,buf,len);

 

SPI接口

spi访问的设备节点是/dev/spidev0.2。使用方法:

初始化:

open(SPI_DEV, O_RDONLY);

ioctl(fd, SPI_IOC_WR_MODE, & mode);      //mode=0-4

ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, & speed);    //speed <20000000,单位Hz

数据传输:

struct spi_ioc_transfer transfer;

transfer.rx_buf = (unsigned long)rx_buffer;       //接收数据存放的buffer,要求4字节对齐

transfer.tx_buf = (unsigned long)tx_buffer;       //发送数据存放的buffer,要求4字节对齐

transfer.len = lenByte;             //传输字节数

ioctl(fd, SPI_IOC_MESSAGE(1), & transfer)        //之行后,.rx_buf里即是收到的数据

 

GPIO接口

Gpio 访问的设备节点主要在/sys/class/gpio/ 目录

以命令行设gpio42输出高为例:

adb shell

echo 42 > /sys/class/gpio/export

cd /sys/class/gpio/gpio42

echo out > direction                 //如果设输入:echo in > direction

echo 1 > value                          //如果读输入的值: cat value

客户的c程序可参考上面的做法,echo相当于写文件,cat相当于读文件

 

 

ADC接口

Adc 访问的设备节点是:/sys/class/mtk-adc-cali/mtk-adc-cali/AUXADC_read_channel12_uv

打开文件后直接读即可。

 


文档中心

以上内容是否对您有帮助?