Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
DAC
STM32F103单片机 设置DAC固定输出一个电压值,发现电压有规律性的有几十mv波动
发布于 2024-09-01 23:39:49 浏览:389
订阅该版
这个是设置DAC的代码。即使用一个线程定时去设置DAC值,还是会有波动。图形如下 也排除有其它pin对它的干扰。 ![微信图片_20240901233733.jpg](https://oss-club.rt-thread.org/uploads/20240901/efbe2321950803e4ec687aafa52bfedb.jpg.webp) ![微信图片_20240901233743.jpg](https://oss-club.rt-thread.org/uploads/20240901/306dd0a49a5017e6923782cab336e3ed.jpg.webp) #include
#include
#include
#define DBG_TAG "dac_sensor" #define LOG_LVL DBG_LOG #include
#define DAC_DEV_NAME "dac1" /* DAC 设备名称 */ #define DAC_DEV_CHANNEL 1 /* DAC 通道 */ #define REFER_VOLTAGE 300 /* 参考电压 3.0V,数据精度乘以100保留2位小数*/ #define CONVERT_BITS (1 << 12) /* 转换位数为12位 */ #define THREAD_STACK_SIZE 512 #define THREAD_PRIORITY 20 #define THREAD_TIMESLICE 10 rt_dac_device_t dac_dev; void dac_set_vol(rt_uint32_t vol,rt_int16_t full_range) { rt_uint32_t value; rt_err_t ret = RT_EOK; double temp; temp = 12000;//uA temp=temp/10000; temp=temp*4095/3; value=temp; if (dac_dev != RT_NULL) { ret=rt_dac_write(dac_dev, DAC_DEV_CHANNEL, value); //LOG_D("rt_dac_write %d value=%d",ret,value); } } int dac_sensor_out(void) { rt_err_t ret = RT_EOK; /* 查找设备 */ dac_dev = (rt_dac_device_t)rt_device_find(DAC_DEV_NAME); if (dac_dev == RT_NULL) { rt_kprintf("can't find %s device!\n", DAC_DEV_NAME); return RT_ERROR; } else { rt_kprintf("find %s device!\n", DAC_DEV_NAME); /* 使能设备 */ ret = rt_dac_enable(dac_dev, DAC_DEV_CHANNEL); } dac_set_vol(12000,0); return ret; } static void sensor_dac_thread(void *parameter) { dac_sensor_out(); // while(1) // { // dac_set_vol(12000,0); // rt_thread_mdelay(300); // } } static int sensor_dac_init(void) { rt_thread_t tid; tid = rt_thread_create("dac out", sensor_dac_thread, RT_NULL, THREAD_STACK_SIZE, THREAD_PRIORITY, THREAD_TIMESLICE); if(tid == RT_NULL) { LOG_E("Fail to create dac out thread"); } rt_thread_startup(tid); return 0; } INIT_APP_EXPORT(sensor_dac_init);
查看更多
4
个回答
默认排序
按发布时间排序
梦笑真美
2024-09-02
这家伙很懒,什么也没写!
是不是电源干扰引起的
江耀炎
2024-09-02
这家伙很懒,什么也没写!
你好,谢谢回复。查了,电源的波形正常。这个DAC输出间隔350ms左右就有一个低电平信号
RESCUE1
2024-09-03
这家伙很懒,什么也没写!
这个频率对于MCU电路还是比较高的,检查一下时钟相关的电路和功能,定时器、PWM输出、时钟分频等。
大佬什么都会
2024-09-11
这家伙很懒,什么也没写!
为什么我的RT-Thread Studio里边没有rt_drv_dac.c和rt_drv_dac.h这两个文件?
撰写答案
登录
注册新账号
关注者
0
被浏览
389
关于作者
江耀炎
这家伙很懒,什么也没写!
提问
2
回答
2
被采纳
0
关注TA
发私信
相关问题
1
dac设备可以使用dma+TIM定时器触发模式吗
2
无法找到rt_dac_device_t
3
stm32的dac配置,指南里面没有
4
在 rt-thraed env中使用HAL库报错HAL_BUSY
5
STM32F103RC dac输出使能后系统调度异常。
6
怎么把dac_vol_sample这个函数写到main里?
7
undeclared (first use in this function)
8
DAC通道1可以开启,通道2开不起来
9
DAC、ADC配置DMA后,程序运行卡死
10
在RT模式下,采用DMA模式如何设置DAC?
推荐文章
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组件
最新文章
1
【RT-Thread】【ci】【scons】将ci.attachconfig.yml和scons结合使用
2
Rt-thread中OTA下载后,bootloader不搬程序
3
ulog 日志 LOG_HEX 输出时间改为本地日期时间
4
在RT-Thread Studio中构建前执行python命令
5
研究一了一段时间RTT,直接标准版上手太难,想用nano,但又舍不得组件
热门标签
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
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
8
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
9
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
RTT_逍遥
3
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
4
次点赞
Ghost_Girls
1
篇文章
7
次点赞
xiaorui
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部