平头哥RVB2601板子上手——GPIO

简介: CH2601的GPIO的操作方法,以及OLED图像的显示

作者:bigbat


对于嵌入式应用来说最简单的测试就是点亮LED了,下面我就做一下使用GPIO来点亮LED的试验。从有限的资料来看,CH2601使用了E906内核、系统总线接口支持 AMBA3.0 AHB-Lite 协议。该总线是由ARM公司提出的一种开放性的片上总线标准,它独立于处理器和工艺技术,具有高速度低功耗等特点。也就是说外设的操作与ARM类型的MCU相似。但是我想错了,还是有些差别的,具体的操作过程是:设置MUX多路分配器将pin和pin的GPIO功能连接,然后初始化GPIO接口。接着指定GPIO方向,这时候该GPIO引脚才可以使用。由于资料不多主要是参考例程代码。


    csi_pin_set_mux(PA7, PIN_FUNC_GPIO); //Red LED
    csi_pin_set_mux(PA25, PIN_FUNC_GPIO); //Green LED
    csi_pin_set_mux(PA4, PIN_FUNC_GPIO); //Blue LED
  csi_gpio_pin_init(&pin_led_red, PA7);
    csi_gpio_pin_dir(&pin_led_red, GPIO_DIRECTION_OUTPUT);
    csi_gpio_pin_init(&pin_led_green, PA25);
    csi_gpio_pin_dir(&pin_led_green, GPIO_DIRECTION_OUTPUT);
    csi_gpio_pin_init(&pin_led_blue, PA4);
    csi_gpio_pin_dir(&pin_led_blue, GPIO_DIRECTION_OUTPUT);


第一、根据原理图

1.jpg

知道LED_RED、LED_GREEN、LED_BULE三色LED的引脚对应。


第二、设置和初始化PA7、PA25、PA4三个引脚。


第三、csi_gpio_pin_write(&pin_led_red, GPIO_PIN_HIGH);函数操作LED

  while (1) {
        LOGD(TAG, "Hello world!\n");
        aos_msleep(1000);
    if (d == 1) {
            csi_gpio_pin_write(&pin_led_red, GPIO_PIN_HIGH);
      csi_gpio_pin_write(&pin_led_green, GPIO_PIN_HIGH);
      csi_gpio_pin_write(&pin_led_blue, GPIO_PIN_HIGH);
        } else {
            csi_gpio_pin_write(&pin_led_red, GPIO_PIN_LOW);
      csi_gpio_pin_write(&pin_led_green, GPIO_PIN_LOW);
      csi_gpio_pin_write(&pin_led_blue, GPIO_PIN_LOW);
        }
    d=!d; 
  }

主程序如上。由于没有找到好的模板,主要测试程序是使用Hello_world项目修改而来的。


将程序烧写到开发板中,运行。

2.jpg


可以看到LED等开始闪亮了。


oled的显示我是修改了bitmap_risc_v.c的内容显示的。

3.jpg


这是我开发的图片和微字库制作工具,将画好的图片转换成C语言数组后替换原来的图片就是显示的效果。


本文源自:平头哥芯片开放社区

欢迎关注公众号:芯片开放社区(ID:OCC_THEAD),查看更多应用实战文章。

相关文章
|
网络协议 数据安全/隐私保护 芯片
|
存储 API 开发工具
【平头哥RVB2601创意应用开发】使用体验02 -- KV存储
使用KV组件在RVB2601进行项目参数的本地持久化。
555 0
【平头哥RVB2601创意应用开发】使用体验02 -- KV存储
|
网络协议 物联网 数据处理
【平头哥RVB2601开发板试用体验】AT 解析器和通过w800 AT命令接入阿里云生活物联网平台
RISC-V RVB2601 Yoc 实现和测试验证阿里云平台接入的等相关功能,同时去了解YoC中网络设备和AT解析器框架。
649 0
【平头哥RVB2601开发板试用体验】AT 解析器和通过w800 AT命令接入阿里云生活物联网平台
|
存储 JSON 数据格式
【平头哥RVB2601创意应用开发】疫情播报系统应用
实现通过网络读取json数据,进行分解,针对数据字符,播放相应的mp3音频文件,并在OLED屏幕上显示实际对应数据的疫情播报系统。
186 0
【平头哥RVB2601创意应用开发】疫情播报系统应用
|
芯片
【平头哥RVB2601开发板试用 】GPIO控制的流水灯
对于芯片来说,其实经常用到的就是IO口了,其实其所有功能的实现都是通过IO口的复用实现的,那么今天咱们就简单对IO口控制流水灯进行讲解分析
351 0
【平头哥RVB2601开发板试用 】GPIO控制的流水灯
|
存储 编解码 监控
【平头哥RVB2601开发板试用体验】基于 HTTPClient 的云语音识别 3
在本文中,我们将手动实现“multipart/form-data”类型内容的 POST 请求,并且最终完成整个云语音识别功能。
222 0
【平头哥RVB2601开发板试用体验】基于 HTTPClient 的云语音识别 3
|
存储 编解码 物联网
|
网络协议 物联网 数据处理
【平头哥RVB2601开发板试用体验】AT解析器和通过w800 AT命令接入阿里云生活物联网平台
RISC-V RVB2601 Yoc 实现和测试验证阿里云平台接入的等相关功能,同时去了解YoC中网络设备和AT解析器框架。
531 0
【平头哥RVB2601开发板试用体验】AT解析器和通过w800 AT命令接入阿里云生活物联网平台

热门文章

最新文章