你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32的dac输出不是模拟量吗?  

[复制链接]
yww110 提问时间:2019-5-20 15:41 /
阅读主题, 点击返回1楼
收藏 评论40 发布时间:2019-5-20 15:41
40个回答
七哥 回答时间:2019-5-21 09:24:36
本帖最后由 toofree 于 2019-5-21 09:27 编辑
yww110 发表于 2019-5-20 17:15
是这程序给错了吗,他给我实物是STM32F103C8T6的板子,但程序给的是对DAC的操作
...

也不一定是程序给错,而可能是你贴出来的程序不全。
只要你的确能从DAC0832输出正确的模拟波形,那么它就至少对这8个IO做了操作,不用怀疑。
这种情况你得附上工程,不要想当然。
你l应该也是初用STM32和Keil,调试经验不足。
zhangyg0001-262 回答时间:2019-5-21 09:27:41
学习学习
byronsong 回答时间:2019-5-21 10:55:22
yww110 发表于 2019-5-20 18:29
我就搞不懂他为什么没有DAC。还对dac进行操作

给你的程序是从别的项目移植来的吧。
yww110 回答时间:2019-5-21 11:16:13
如果要实现STM32C8T6和DAC0832实现的波形产生,没有内部的DAC,有什么方法实现?
maxtch 回答时间:2019-5-21 12:36:41
DAC0832 的输出是要加运放的,否则阻抗匹配会出大问题。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

yww110 回答时间:2019-5-21 12:40:03
maxtch 发表于 2019-5-21 12:36
DAC0832 的输出是要加运放的,否则阻抗匹配会出大问题。

电路已经连好了,就是不知怎么在STM32F103C8T6编程产生波形
七哥 回答时间:2019-5-21 12:52:12
本帖最后由 toofree 于 2019-5-21 12:59 编辑
yww110 发表于 2019-5-21 12:40
电路已经连好了,就是不知怎么在STM32F103C8T6编程产生波形

那你到底有没有这个板对应的程序?
没程序,你就说你没程序,只是抄的别人的板。
只要提需求,程序都可以实现。
如果是抄板的话,那接法不太完美,一般需要用写信号控一下,来保证数据位同时变化。
yww110 回答时间:2019-5-21 12:58:51
toofree 发表于 2019-5-21 12:52
那你到底有没有这个板对应的程序?
没程序,你就说你没程序,只是抄的别人的板。
只要提需求,程序都可以 ...

有程序的,但是我觉得程序是用于有DAC的STM32。用他的原理做了板子,就是不知道用没有dac的stm32怎么做出效果
七哥 回答时间:2019-5-21 13:00:39
本帖最后由 toofree 于 2019-5-21 13:02 编辑
yww110 发表于 2019-5-21 12:58
有程序的,但是我觉得程序是用于有DAC的STM32。用他的原理做了板子,就是不知道用没有dac的stm32怎么做出 ...

说到底,你还是没有做出来效果后,对应的那个程序。
不过,这没关系呀,只要你现在有的程序流程没有问题,替换一下的事情。在原来DAC更新数据的地方,替换成IO口输出数据就行了。


yww110 回答时间:2019-5-21 13:11:43
toofree 发表于 2019-5-21 13:00
说到底,你还是没有做出来效果后,对应的那个程序。
不过,这没关系呀,只要你现在有的程序流程没有问题, ...

这是他产生波形的函数,他用DAC的,不知怎么改,最后用定时中断PA4模拟输出
论坛怎么传工程?
void dac_creat_buf(void)
{
    u16 i;
    float inc=2*PI/DAC_DAT_SIZE;        
    float outdata=0;
    for(i=0;i<DAC_DAT_SIZE;i++)
    {
        outdata=2048*(1+sin(inc*i));   
                                if(outdata>=4096)
                                        outdata=4095;
        TableSin=outdata;
                       
                                outdata=4096/DAC_DAT_SIZE*i;
                          TableSaw=outdata;
                       
                                outdata=i*8192/DAC_DAT_SIZE;
                                if(i<DAC_DAT_SIZE/2)
                                {                                       
                                        TableTriangle=outdata;
                                        Tablesqu=0;
                                }
                                else
                                {
                                        outdata=8192-8192/DAC_DAT_SIZE-outdata;
                                        if(outdata>=4096)
                                                TableTriangle=4095;
                                        else
                                                TableTriangle=outdata;
                                        Tablesqu=4095;
                                }
    }  
}
any012 回答时间:2019-5-22 08:46:46
把工程文件夹压缩,然后附件上传。
一代睡神的崛起 回答时间:2019-5-23 11:09:31
DAC0832是数字量输出模拟量,所以接入的应为数字量通过转换关系编程模拟量输出

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

luscu 回答时间:2019-5-23 11:45:40
我觉得楼主应该静下心,慢慢看看代码,没有其他办法可以帮到你了。
茉莉白的903 回答时间:2019-6-17 19:30:37
写程序可以啊,不执行就行了。
不会报错。
多看看数据手册
dsmd13425526125 回答时间:2019-7-4 15:26:35
芯片如果有DAC功能,正常应该是可以用来输出模拟量

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版