荔枝派nano用shell脚本点亮oled(ssd1306/sh1107)

i2c驱动参考前一篇文章荔枝派Lichee Pi/planckpi/f1c100s添加i2c并驱动oled(sh1107/ssd1306)_山间朝暮-C的博客-CSDN博客

由于gcc交叉编译有问题,所以暂时只能用shell命令点亮屏幕了

演示视频Linux下手敲OLED屏幕显示,终于点亮啦_哔哩哔哩_bilibili

首先是屏幕初始化init.sh(屏幕地址参考上一篇)

i2cset -y 0 0x3c 0x00 0xae关闭屏幕
i2cset -y 0 0x3c 0x00 0x00
i2cset -y 0 0x3c 0x00 0x10
i2cset -y 0 0x3c 0x00 0x20
i2cset -y 0 0x3c 0x00 0x81
i2cset -y 0 0x3c 0x00 0x6f
i2cset -y 0 0x3c 0x00 0xa0
i2cset -y 0 0x3c 0x00 0xc0
i2cset -y 0 0x3c 0x00 0xa4
i2cset -y 0 0x3c 0x00 0xa6//正常显示a7是反色
i2cset -y 0 0x3c 0x00 0xd5
i2cset -y 0 0x3c 0x00 0x91
i2cset -y 0 0x3c 0x00 0xd9
i2cset -y 0 0x3c 0x00 0x22
i2cset -y 0 0x3c 0x00 0xdb
i2cset -y 0 0x3c 0x00 0x3f
i2cset -y 0 0x3c 0x00 0xa8
i2cset -y 0 0x3c 0x00 0x4f
i2cset -y 0 0x3c 0x00 0xd3
i2cset -y 0 0x3c 0x00 0x68
i2cset -y 0 0x3c 0x00 0xdc
i2cset -y 0 0x3c 0x00 0x00
i2cset -y 0 0x3c 0x00 0xad
i2cset -y 0 0x3c 0x00 0x8a
i2cset -y 0 0x3c 0x00 0xaf
i2cset -y 0 0x3c 0x00 0xaf//开启屏幕

 给执行权限

chmod +x init.sh

然后运行,屏幕就亮了

然后是横条纹显示

for loop_1 in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
 do
  base=176;
  line=`expr $base + $loop_1`;
  echo "第$loop_1行";
  i2cset -y 0 0x3c 00 $line
  i2cset -y 0 0x3c 00 0x00
  i2cset -y 0 0x3c 00 0x10
  for loop0 in 1 2 3 4 5 6 7 8
   do
    for loop in 1 2 3 4 5
     do
      i2cset -y 0 0x3c 40 00
     done
    for loop in 1 2 3 4 5
     do
      i2cset -y 0 0x3c 40 0xff
     done
   done
done

 

然后是竖条纹显示

for loop_1 in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
do
 base=176;
 line=`expr $base + $loop_1`;
 echo "第$loop_1行";
 i2cset -y 0 0x3c 00 $line
 i2cset -y 0 0x3c 00 0x00
 i2cset -y 0 0x3c 00 0x10
 for loop0 in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  do
   if [ `expr $loop_1 % 2` == 0  ]
   then #echo "0"
    for loop in 1 2 3 4 5
     do
      i2cset -y 0 0x3c 40 00
     done
   else #echo "1"
    for loop in 1 2 3 4 5
     do
      i2cset -y 0 0x3c 40 0xff
     done
   fi

  done
done

虽然只能简单的显示,不过用来测试一下屏幕还是可以的

 后面搞好交叉编译器就可以直接C语言驱动了

猜你喜欢

转载自blog.csdn.net/hhcgn/article/details/131828425