399|0

1583

帖子

2

资源

纯净的硅(高级)

平头哥RVB2601板子-GPIO [复制链接]

对于嵌入式应用来说最简单的测试就是点亮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);

第一、根据原理图

image.png  知道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项目修改而来的。

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

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

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

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


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表