DAC 8位,电压输出,10元以内,求推荐,(用运放转电流为电压的话感觉不准)

DAC 8位,电压输出,10元以内,求推荐,(用运放转电流为电压的话感觉不准),第1张

LTC2630 1通道 8位 SPI接口 电压输出

DAC5571 1通道 8位 I2C接口 电压输出轮雀

DAC081C081 1通道 8位 I2C接口 电压输出

DAC081S081 1通道 8位 SPI接口 电压输出

MAX5703 1通道 8位 SPI接口 电压输出

MAX5382 1通道弊察 8位 I2C接口 电压输出腊卜早

你可以到元件厂商的网站去查查还有很多型号。

虽然没接触这款单片机和这个型号的IC

但你的程序中存在着几个潜在的错误,这种错误不是任何编译器都能容忍的

一、先看程序的全局变量定义部分,定义了一个无符知模或号整型数值型变量 DA_data

即 int 类型的变量

二、之后的自定义函数中又定义了一个无符号长整型数值型变量 DA_date_buf

即 long 类型变量

三、然而这个函数中,又调用了其它函数,并指定了数据类型为无符号字符型变量

即 char 类型变量

四、在函数中,又对数值型的变量进行了位 *** 作,即右移 *** 作,DA_date_buf>>8

这种类型上的区别,某些编译器可以通过,但某些编译器不能通过,不能通过的编译器,则会发生数据类型错误,有时候编译器是无法判断出问题所在的,即不能提示出具体错在哪里。

解决办法则是:

一、数据要是搭伍不大的话,可以全部使用 char 字符型变量,因为只有字符型变量才支持左移和右移的位 *** 作,字符型变量转换成十进制表示,最小数值到最大数值是 0 ~ 254 共255个单位

二、数值比较大码灶的时候,就不要进行位 *** 作,即左移与右移的 *** 作,可以用数值表达式予以替换,即 DA_date_buf=(DA_date_buf + 8)或 DA_date_buf=(DA_date_buf - 8)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12420819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存