玄铁RISC-V处理器入门与实战-RISC-V 应用领域开发示例-基于D1 Dock Pro 应用开发示例

简介: 玄铁RISC-V处理器入门与实战-RISC-V 应用领域开发示例-

1使用LRADC模块实现多种按键模式触发

a示例介绍

本示例主要使⽤了chip_d1组件驱动组件⾥的LRADC。LRADC模块属于输⼊设备,⼀般包括各种按键的实现。当⽤户按下按键的时候会触发中断,可以在中断⼦程序⾥⾯进⾏判断当前的按键属于哪种⾏为,可以⽀持多种按键模式的触发。涉及到的主要函数如下:

 

// 初始化lradc
lradc_status_t csi_lradc_init(void);
// 反初始化lradc
lradc_status_t csi_lradc_deinit(void);
// 注册回调函数
lradc_status_t csi_lradc_register_callback(lradc_callback_t callback);

 

具体使⽤如下

 

static void lradc_irq_callback(uint32_t irq_status,uint32_t data)
{
    // Here,we only catpure key button's up IRQ to confirm user press
key one times
    if(irq_status & LRADC_ADC0_UPPEND){
        printf("user key is pressed one times\n");
   }
}
static int test_lradc(void)
{
    int ret = -1;
    printf("Run lradc test\n");
    ret = csi_lradc_init();
    if(ret){
        printf("lradc init failed!\n");
        return -1;
   }
    csi_lradc_register_callback(lradc_irq_callback);
    return 0;
}

 

b)示例演示

双击打开CDK,点击⼯具栏最右侧的平头哥图标。

找到工程后点击【创建⼯程】按钮。

 

 

image.png

 

 

右键点击d1_button_demo⼯程,选择build,进⾏编译,直到结束。

image.png

 

先连接好硬件JTAG。然后点击红⾊框处的按钮开始烧写。

 

image.png 

image.png 

 

烧写完毕之后,按复位键即可启动。

 

关于D1 Dock Pro开发板来实现多种按键模式的触发的详细介绍可以进入芯片开放社区(OCC)查看。

2LCD显示

a示例介绍

本示例主要使⽤了chip_d1组件驱动组件⾥的mipi-dsi驱动,⽤户可以参考驱动,对屏显示进⾏控制显示,包括屏的亮度显示等。

 屏初始化

int csi_display_init(void)

 

屏显示控制

int csi_display_ioctl(disp_cmd_e cmd,void *arg)

 

屏显示控制命令包括以下⼏类:

Global interface

Layer interface

Capture interface

LCD interface

Smart backlight

 

具体可以参考sunxi_display2.h⾥的tag_DISP_CMD数据定义。

b)示例演示

双击打开CDK,点击⼯具栏最右侧的平头哥图标,在搜索栏⾥输⼊lcd_demo,在结果⾥选择lcd_demo,点击右侧的创建⼯程】,版本选择v7.5.1。

  image.png


右键点击lcd_demo⼯程选择build,进⾏编译,直到结束。

 

image.png 

 

先连接好硬件JTAG。然后点击红处的按钮开始烧写。

 

image.png

 

烧写完毕之后,按复位键即可启动。

 

重新上电或按下RST键,系统启动,串⼝会有以下打印信息,表示系统运⾏成功。

 

[   0.190][app]app start........

[   0.200][app]Display screen background color testing

 

查看显示屏上会交错显示红、绿、蓝三⾊。

 

image.png 

 

 

 

关于D1 Dock Pro开发板实现LCD屏显的详细说明可以进入芯片开放社区(OCC)查看。

相关文章
|
7月前
|
运维 监控 数据可视化
故障发现提速 80%,运维成本降 40%:魔方文娱的可观测升级之路
魔方文娱携手阿里云构建全栈可观测体系,实现故障发现效率提升 80%、运维成本下降 40%,并融合 AI 驱动异常检测,迈向智能运维新阶段。
593 68
|
2月前
|
应用服务中间件
手慢无!阿里云轻量服务器2026最新秒杀价:2核4G配置199元/年,200M带宽不限流
阿里云2026轻量服务器秒杀开启!轻量应用服务器官方页面:https://t.aliyun.com/U/PEdlFP 新用户专享:2核2G低至38元/年(9.9元/月限时抢),2核4G仅199元/年,4核8G/16G分别1159元、1599元/年。全系配200M峰值带宽+不限流量,性价比远超友商。手慢无!
|
11月前
|
人工智能 自然语言处理 运维
阿里云 X 瓴羊:AI Stack一体机上新解决方案,重构企业问数与客服交互
简介:瓴羊基于阿里云AI Stack推出智能问数与智能客服一体机,以“低成本、零门槛”实现数据分析与客服效率的显著提升,助力企业智能化升级。
956 0
|
传感器 存储 索引
如何解决 analogRead()函数读取到的模拟值不准确的问题
在使用analogRead()函数时,若读取到的模拟值不准确,可以通过校准ADC、增加采样次数取平均值、使用外部参考电压或检查电路连接等方式来提高读取精度。
|
负载均衡 网络协议 Unix
Nginx七层(应用层)反向代理:SCGI代理scgi_pass篇
Nginx七层(应用层)反向代理:SCGI代理scgi_pass篇
379 1
|
数据安全/隐私保护
STM32CubeMX U8g2移植
STM32CubeMX U8g2移植
901 12
|
算法 API 图形学
【Qt 学习笔记】QWidget的geometry属性及window frame的影响
【Qt 学习笔记】QWidget的geometry属性及window frame的影响
1225 2
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Spin Box的使用及说明
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Spin Box的使用及说明
1157 0
|
存储 监控 安全
SNMP详解:网络管理的基石
【4月更文挑战第21天】
1425 0
SNMP详解:网络管理的基石
|
Java Maven Android开发
Maven神坑之PKIX path building failed终极解决办法
Maven神坑之PKIX path building failed终极解决办法
2996 0
Maven神坑之PKIX path building failed终极解决办法