Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ADC
夏令营
[RT-Thread x 大学生夏令营] 基于hmi-board的简易示波器
发布于 2023-07-28 17:52:22 浏览:376
订阅该版
[tocm] # HMI—board 示波器,ADC监视器 应为没有合适的信号源,所以测试图使用的是随机数 ```c #define LCD_WIDTH 360 #define LCD_HEIGHT 158 lv_obj_t * chart; lv_chart_series_t * ser1; lv_chart_series_t * ser2; int adc_chart_init(void) { lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x343247), 0); /*Create a chart*/ chart = lv_chart_create(lv_scr_act()); lv_chart_set_type(chart, LV_CHART_TYPE_LINE); lv_chart_set_point_count(chart, 100); lv_chart_set_range(chart,LV_CHART_AXIS_PRIMARY_Y, 0, 330); lv_chart_set_range(chart,LV_CHART_AXIS_SECONDARY_Y, 0, 330); lv_chart_set_update_mode(chart, LV_CHART_UPDATE_MODE_SHIFT); lv_chart_set_div_line_count(chart, 4, 8); //lv_chart_set_zoom_x(lv_obj_t * obj, uint16_t zoom_x); //lv_chart_set_zoom_y(lv_obj_t * obj, uint16_t zoom_y); lv_chart_set_axis_tick(chart, LV_CHART_AXIS_PRIMARY_Y, 0, 0, 5, 1, true, 80); lv_chart_set_axis_tick(chart, LV_CHART_AXIS_PRIMARY_X, 0, 0, 12, 1, true, 50); lv_obj_set_size(chart, LCD_WIDTH, LCD_HEIGHT); lv_obj_align(chart, LV_ALIGN_CENTER, 0, 0); /*添加两行数据*/ ser1 = lv_chart_add_series(chart,lv_color_hex(0xe9dbfc),LV_CHART_AXIS_PRIMARY_Y); ser2 = lv_chart_add_series(chart,lv_color_hex(0x6f8af6),LV_CHART_AXIS_PRIMARY_Y); return 0; } int adc_chart_newdata(int index,uint32_t newdata,int refresh) { if(index == 0) { lv_chart_set_next_value(chart, ser1, newdata); } else { lv_chart_set_next_value(chart, ser2, newdata); } if(refresh) { lv_chart_refresh(chart); /*Required after direct set*/ } return 0; } int main(void) { rt_adc_device_t adc_dev; /* ADC 设备句柄 */ rt_uint32_t value,vol; /* 查找设备 */ adc_dev = (rt_adc_device_t)rt_device_find("adc1"); /* 使能设备 */ if(adc_dev != RT_NULL) { rt_adc_enable(adc_dev, 1); rt_adc_enable(adc_dev, 0); rt_kprintf("enable ok \n"); } else { rt_kprintf("enable erro \n"); } while(lv_is_initialized() != true) { rt_thread_mdelay(500); } adc_chart_init(); while (1) { if(adc_dev != RT_NULL) { static int num = 0; num++; /* 读取采样值 */ value = rt_adc_read(adc_dev, 1); vol = value * 330 / (1u<<12); adc_chart_newdata(0,vol,0); value = rt_adc_read(adc_dev, 0); vol = value * 330 / (1u<<12); rt_kprintf("the voltage is :%d.%02d \n", vol / 100, vol % 100); if(num>=10) { num = 0; adc_chart_newdata(1,vol,1); } else { adc_chart_newdata(1,vol,0); } } rt_thread_mdelay(50); } } ``` ![效果图.png](https://oss-club.rt-thread.org/uploads/20230728/0b0380d3168a6cfbbe564e4e7d4cd940.png.webp)
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
riverthree
这家伙很懒,什么也没写!
文章
1
回答
0
被采纳
0
关注TA
发私信
相关文章
1
请大神帮忙看下风格 还是哪里有问题 照着串口驱动写的ADC驱动
2
ADC config
3
rt_thread_delay()和ADC采样之间的冲突
4
请教在官方BSP中的STM32F40X程序中加入ADC,串口没输出。
5
给RT-Thread添加ADC驱动框架
6
求助:ADC采样被干扰
7
【内核和外设学习营】十里 ADC光敏电阻电压采集实验
8
<内核学习营>+坦然+探索者stm32f407板子的ADC测试光传感器实验
9
【内核学习营】+青春+ADC读取光敏传感器实验
10
《内核学习营》+水一方+项目中应用的ADC实现电压采集
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
812
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部