当前位置: 首页 > wzjs >正文

做企业网站用哪个软件网站信息化建设总体情况

做企业网站用哪个软件,网站信息化建设总体情况,wordpress 文件下载漏洞,许昌长葛网站建设制作设计文章目录 前言一、DAC是什么?二、RT-Thread工程创建三、DAC函数编写1.DAC.c2.DAC.h3.main.c 四、结果测试五、工程分享 前言 本章利用RT-Thread最新的驱动5.1.0开发DAC模块,使用的开发板是正点原子的STM32F4探索者。很多配置和上文重复,本文…

文章目录

  • 前言
  • 一、DAC是什么?
  • 二、RT-Thread工程创建
  • 三、DAC函数编写
    • 1.DAC.c
    • 2.DAC.h
    • 3.main.c
  • 四、结果测试
  • 五、工程分享


前言

本章利用RT-Thread最新的驱动5.1.0开发DAC模块,使用的开发板是正点原子的STM32F4探索者。很多配置和上文重复,本文不再重复叙述。


一、DAC是什么?

DAC 是 Digital-to-Analog Converter 的缩写,即数模转换器。它是一种电子设备,用于将数字信号(通常是二进制代码)转换为连续的模拟信号(如电压或电流)。在嵌入式系统、通信设备、音频系统等领域有广泛应用。
在STM32F4中DAC 模块是12 位电压输出数模转换器。DAC 可以按 8 位或 12 位模式进行配置,并且可与 DMA 控制器配合使用。在 12 位模式下,数据可以采用左对齐或右对齐。DAC 有两个输出 通道,每个通道各有一个转换器。在 DAC 双通道模式下,每个通道可以单独进行转换;当 两个通道组合在一起同步执行更新操作时,也可以同时进行转换。可通过一个输入参考电压引脚 VREF+ (与 ADC 共享)来提高分辨率。

二、RT-Thread工程创建

首先得到一个RT-Thread的STMF4系列驱动5.1.0不报错工程(RT-Thread studio的驱动5.1.0报错修改)
参考上文使用cubemx配置好外设和时钟基于RT-Thread的STM32F4开发第二讲第一篇——ADC
在这里插入图片描述
如图,这是DAC外设的配置。配置好后生成工程
RT-Thread外设初始化整体的流程差不过。

  1. RT-Thread Settings外设开启
  2. 在board.h中预定义宏
  3. 在board.c中粘贴函数HAL_xxx_MspInit和HAL_xxx_MspDeInit
  4. 在stm32xxxx_hal_config.h使能HAL库外设宏定义
    其中第四步cubemx创建工程时已经完成了,不需更改了。其他配置如图
    在这里插入图片描述
    然后进入board.h文件,预定义DAC1的宏,这个文件没有像其他外设(如ADC)预先定义好再注释DAC的宏,需要我们手动添加。
    在这里插入图片描述
    将函数void HAL_DAC_MspInit(DAC_HandleTypeDef* dacHandle)void HAL_DAC_MspDeInit(DAC_HandleTypeDef* dacHandle)粘贴到board.c中,具体操作看上文。
    用cubemx生成的dac.c文件中的函数void MX_DAC_Init(void),去dac_donfig.h和drv_dac.c中对比初始化配置,更新或补全外设初始化
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注意drv_dac.c使用了很多预编译指令,如果你的芯片型号不在其中,要手动添加进去。
以上配置好后,工程不报错就可以编写DAC工作函数了

三、DAC函数编写

下面是DAC输出电压计算公式,函数rt_dac_write(dac_handle, DAC_CHANNEl, dac_value)的参数dac_value值就是DOR的值。
在这里插入图片描述

1.DAC.c

#include "DAC.h"
#include "stdlib.h"#define     DBG_TAG     "dac"
#define     DBG_LVL     DBG_INFO
#include <rtdbg.h>#define     DAC_ANME   "dac1"
#define     DAC_CHANNEl     1
rt_dac_device_t dac_handle;
void DAC_int(void)
{dac_handle = (rt_dac_device_t)rt_device_find(DAC_ANME);if(dac_handle == RT_NULL){LOG_I("failed to dac handle find");return;}if(rt_dac_enable(dac_handle, DAC_CHANNEl) != RT_EOK){LOG_I("failed to dac handle enable");return;}if(rt_dac_write(dac_handle, DAC_CHANNEl, 2000) != RT_EOK){LOG_I("failed to dac output set");return;}LOG_I("success to dac handle init");return;
}
void dac_voltage(int argc,char **argv)
{static int dac_value = 0;dac_value = atoi(argv[1]);if(dac_value>=0 && dac_value<4096){if(rt_dac_write(dac_handle, DAC_CHANNEl, dac_value) != RT_EOK){LOG_I("failed to dac output voltage change");return;}}else {LOG_I("input value error");}
}
/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(dac_voltage, dac voltage convert sample);

2.DAC.h

#ifndef APP_ADC_H_
#define APP_ADC_H_#include <board.h>
#include <rtdevice.h>int adc_init(void);
int adc_thread_init(void);#endif /* APP_ADC_H_ */

3.main.c

#include <rtthread.h>#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
#include "DAC.h"int main(void)
{DAC_int();while (1){rt_thread_mdelay(1000);}return RT_EOK;
}

四、结果测试

经过测试,输入的dac_value在0——4095之间,PA4引脚能输出0.15V——3.29V。如果后面结合硬件定时器可以使用DAC的高级功能——输出特定波形

五、工程分享

通过网盘分享的文件:IO_DAC.zip
链接: https://pan.baidu.com/s/121vVZVeXfjvNNqQjDr9_aA?pwd=jykw 提取码: jykw


http://www.dtcms.com/wzjs/785651.html

相关文章:

  • dw里面怎么做网站轮播图公司网站 域名 cn com
  • 公司网站建立流程淘宝网站内站建设
  • 顺义推广建站桂林市临桂区城乡建设局网站
  • 看想看的做想做的电影网站好产品开发流程建议
  • 爱网站查询挖掘工具深圳网站建设汤小巧
  • 代做网站作业招聘网站的简历可以做几份
  • 网站开发 平面设计idc网站模板 dede
  • 房产中介网站开发费用战鼓网h5在线制作
  • 网站开发前端好还是后端好公司网站如何做水印
  • 石家庄微信网站建设ui设计主要是做什么的
  • 绍兴网站制作企业口碑营销的案例有哪些
  • 邹平建设局网站建设银行网站怎么短信转账
  • 宁波网络建站微信网页版登录手机版
  • 卖营销软件的网站欧派全屋定制
  • 乐都区公司网站建设雄县哪做网站
  • 做网站需要icpwordpress安装没反应
  • 网站备案的规定南京专业做网站
  • 山东做网站的公司有哪些发布消息做任务的网站
  • 网站建设报告家教总结眼科医院网站设计怎么做6
  • 南阳做网站多少费用wordpress 添加登录界面
  • seo优化网站多少钱排名优化网站建设
  • 做承诺的网站网上商城系统模板
  • 网站开发流程需要用到的语言网站推广服务公司
  • wordpress文章标题总有网站名教务管理系统可行性研究报告
  • 网站安全检测软件装修公司展厅效果图设计图片
  • 网站要怎么备案html写手机网站吗
  • 宝塔面板wordpress多站点wordpress上传图片错误媒体库错误
  • 规划院网站建设书公司单页设计
  • 南昌网站建设制作与维护wordpress 主题 积分
  • app源码网站注册网站流程及资料