- GPIO操作
gpio序号=BANK*32 + N
比如p2.4的GPIO序号就是:
2*32+4=68
imx283/287的四个GPIO的序号分别是:
122、118、116、71
- 导出GPIO
cd /sys/class/gpio/
echo 71 >export
- 设置方向
echo in > direction
echo out > direction
- 设置高低电平
echo 0 >value
echo 1 >value
- 应用示例
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <errno.h>
#define DEV_PATH "/sys/devices/virtual/gpio/gpio68/value"
int main(void)
{
int fd = 0;
char value;
fd = open(DEV_PATH, O_RDWR);
if (fd < 0) {
perror(DEV_PATH);
}
lseek(fd, 0, SEEK_SET);
read(fd, &value, 1);
printf("get value:%c \n", value);
close(fd);
return 0;
}
- RTC时间设置
打开编译选项:
Device→Driver→RealTime Clock→Freescale MXS series RTC
root@EasyARM-iMX28x ~# date
Tue Sep 1 00:04:01 UTC 2015
root@EasyARM-iMX28x ~# date 2019.01.30-13:34:00
Wed Jan 30 13:34:00 UTC 2019
root@EasyARM-iMX28x ~# hwclock -w
root@EasyARM-iMX28x ~# date
Wed Jan 30 13:34:19 UTC 2019
- PWM操作
/sys/devices/platform/mxs-bl.0/backlight/mxs-bl
cat max_brightness,用于查看可设置的占空比的最大值;
cat brightness,查看当前占空比的值;
echo 10 >brightness,设置 PWM 的占空比;实际输出的 PWM 波形的占空比为
brightness / max_brightness,本例中为 10/100
- i2c接口
ADXL345的地址是0xA6
UDA1380的地址是0x30
E2PROM的地址是0xA0
root@EasyARM-iMX28x /mnt/test# ./i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- 53 -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --