Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
DAC
STM32F103单片机 设置DAC固定输出一个电压值,发现电压有规律性的有几十mv波动
发布于 2024-09-01 23:39:49 浏览:220
订阅该版
这个是设置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
被浏览
220
关于作者
江耀炎
这家伙很懒,什么也没写!
提问
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
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
2
RT-Thread EtherKit开源以太网硬件正式发布
3
如何在master上的BSP中添加配置yml文件
4
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
5
RT-Thread 发布 EtherKit开源以太网硬件!
热门标签
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
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
MicroPython
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
16
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部