0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将ADC与带有LCD的stm32 Discovery板一起使用

454398 来源:网络整理 作者:网络整理 2019-12-09 16:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:ADC

使用HAL Cube,ADC的实现非常简单(在第1部分中提到)。

我正在使用 12位ADC模块

ADC预分频器= 8

转换数= 1

ADC分辨率= 128

采样时间为112个周期。

我们还可以将ADC与DMA一起使用。用于它的IRQ处理程序是 HAL_DMA_IRQHandler(AdcHandle.DMA_Handle) ,其中AdcHandle是ADC_HandleTypeDef类型。

要显示ADC值,我们必须使用uint32t uhADCxConvertedValue的外部值。它将值从0转换为4096(2 ^ 12),因此如果要显示从0开始的电压-3V,我们必须做简单的计算 uhADCxConvertedValue * 30/4095;

步骤2:编辑窗口小部件

如何将ADC与带有LCD的stm32 Discovery板一起使用

在segger的文档的500页上,有解释如何使用EDIT窗口小部件的信息。

要创建它,我们必须像在第1部分中创建按钮(1)一样,对其进行类似操作。要设置EDIT小部件参数,请在 WM_INIT_DIALOG case(2)中的小部件回调函数中执行此操作。我们还必须创建函数以附加ADC值编辑。我将在下面显示(3)。

/**** 1 **************************************************************************************************************/

#define ID_W0_EDIT0 (GUI_ID_USER + 3)

static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] =

{

{ EDIT_CreateIndirect , 0 , ID_W0_EDIT0 , 178, 15, 40, 20 },

};

/**** 2 **************************************************************************************************************/

hItem = WM_GetDialogItem(hDlg, ID_W0_EDIT0);

EDIT_SetHexMode(hItem, 0x1234, 0, 0xffffff); // set your own parameters

/**** 3 **************************************************************************************************************/

static void _ShowADCval(void)

{

WM_HWIN hItem;

int adc_val = uhADCxConvertedValue * 30 / 4095;

hItem = WM_GetDialogItem(oscWindow, ID_W0_EDIT0);

EDIT_SetDecMode(hItem, adc_val, 0, 300, 1, GUI_EDIT_NORMAL);

}

步骤3:ADC图

该图显示了来自PA0引脚的ADC值电平。在第一张图片中,我将具有3V和GND的PA0连接到第二张图片中的PA0。在图表上,我们可以实时看到这些值。我也将编辑小部件放在右上角。如您所见,该值随图形而变化。

创建图形的功能类似于EDIT小部件的创建。

创建所有框架图,编辑和图形:

#define ID_W0 (GUI_ID_USER + 1)

#define ID_W0_GRAPH0 (GUI_ID_USER + 2)

#define ID_W0_EDIT0 (GUI_ID_USER + 3)

//

// Dialog resource

//

static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] =

{

{ FRAMEWIN_CreateIndirect, “Osciloscope” , ID_W0 , 0, 0, 240, 320, 0 },

{ GRAPH_CreateIndirect , 0 , ID_W0_GRAPH0 , 5, 5, 225, 230 },

{ EDIT_CreateIndirect , 0 , ID_W0_EDIT0 , 178, 15, 40, 20 },

};
责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • lcd
    lcd
    +关注

    关注

    36

    文章

    4578

    浏览量

    175795
  • adc
    adc
    +关注

    关注

    100

    文章

    7380

    浏览量

    553747
  • Discovery
    +关注

    关注

    0

    文章

    14

    浏览量

    9118
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    N9H20如何将 SPI 闪存与非作系统 BSP 一起使用?

    N9H20如何将 SPI 闪存与非作系统 BSP 一起使用?
    发表于 09-01 08:27

    N9H20如何将非作系统 NVTFAT 与 SPI 闪存一起使用?

    N9H20如何将非作系统 NVTFAT 与 SPI 闪存一起使用?
    发表于 09-01 06:38

    是否可以客户端控件与CYW920706WCDEVAL一起使用?

    是否可以客户端控件与CYW920706WCDEVAL一起使用? 我想用它来发现蓝牙 BR/EDR,然后将其与其他设备配对。 有客户端控制的下载链接或文档吗? 另外,你有 AIROC Connect 蓝牙应用程序的文档吗?
    发表于 07-04 07:50

    无法Jlink调试器与CYBT263065EVAL COOLDIM_PRG_BOARD连接在一起怎么解决?

    我无法 Jlink 调试器与 CYBT263065EVAL COOLDIM_PRG_BOARD连接在一起
    发表于 07-03 06:24

    如何将I2S与音频源一起使用?

    ,但 I2S 选项变灰。 我可以通过选择 .wav 来播放其他音频 定义。 如何将 I2S 与音频源一起使用?
    发表于 06-30 07:36

    是否建议 CYBT-213043 模块与 CYW20835-PB1KML1GGF 一起使用?

    我有带有 BT LE 的参考 BT 设计。 我想添加 MESH 网络。 有没有可以同时提供 BT LE 和 BT MESH 功能的英飞凌 SoC? 如果没有,您是否建议 CYBT-213043 模块与 CYW20835-P
    发表于 06-05 08:10

    技术分享 | 迅为RK3568开发如何将 Linux 板卡虚拟成U盘

    技术分享 | 迅为RK3568开发如何将 Linux 板卡虚拟成U盘
    的头像 发表于 06-04 10:57 882次阅读
    技术分享 | 迅为RK3568开发<b class='flag-5'>板</b><b class='flag-5'>如何将</b> Linux 板卡虚拟成U盘

    如何将FX3与WSL(Linux 的 Windows 子系统)一起使用?

    如何将 FX3 与 WSL(Linux 的 Windows 子系统)一起使用? 我在 /dev/ 中找不到任何设备 我有许多项目在 Windows 上使用VISUAL STUDIO项目进行操作,因此请验证该设备是否在 Windows 上运行。
    发表于 05-06 07:11

    AN3408-如何将12位ADC用于力敏电阻

    电子发烧友网站提供《AN3408-如何将12位ADC用于力敏电阻.pdf》资料免费下载
    发表于 01-21 14:38 0次下载
    AN3408-<b class='flag-5'>如何将</b>12位<b class='flag-5'>ADC</b>用于力敏电阻

    AN-166:与Linduino一起飞行中更新

    电子发烧友网站提供《AN-166:与Linduino一起飞行中更新.pdf》资料免费下载
    发表于 01-12 10:09 0次下载
    AN-166:与Linduino<b class='flag-5'>一起</b>飞行中更新

    ADS5404EVM 和TSW1400EVM一起使用就可以开发吗?

    ADS5404EVM 和TSW1400EVM一起使用就可以开发吗? 这个开发一起使用的时候还需要购买其他互联电缆不? 开发套件中有没有包含信号和时钟的输入同轴电缆? 三个问题。
    发表于 12-30 08:30

    采用THS4503驱动ADS1675,一起使用时ADC发烫的原因?

    参考设计采用THS4503驱动ADS1675,一起使用时,ADC发烫,但是能正常工作,去掉THS4503后,ADC不怎么烫,想问下,是THS4503输出电流过大造成的,还是什么原因
    发表于 12-24 07:02

    AINN和AGND接在了一起,请问AMC1306M25的AGND的地和隔离电源的地是个地吗?

    一起,请问AMC1306M25的AGND的地和隔离电源的地是个地吗? 如果不是AGND我应该怎么接?
    发表于 12-23 08:25

    UCC39002与3个PT4484模块一起使用

    电子发烧友网站提供《UCC39002与3个PT4484模块一起使用.pdf》资料免费下载
    发表于 12-21 10:23 2次下载
    <b class='flag-5'>将</b>UCC39002与3个PT4484模块<b class='flag-5'>一起</b>使用

    ADC08D500要一起工作做Interleaving的话,需要在ADC CLK Input端各接个Delay Line IC对吗?

    目前我们有个问题想请教,如果我们有两颗ADC08D500要一起工作做Interleaving的话,需要在ADC CLK Input端各接
    发表于 12-12 08:39