完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
DAC8760输出数据最高位发送问题 DAC8760再次麻烦大家帮帮忙。 在大伙的帮忙下,DAC8760终于可以输出了,但是有遇到了奇怪的问题,当我发送数据寄存器的时候,当发送的数据的最高位为1时,输出值就错了,而且是非常小。比如我用0至20mA档,当发送的数据为0~0x7fff 时,输出正确,当发送大于等于0x8000时,输出都很小,1mA左右。 麻烦大家帮帮,谢谢 写程序: void DAC8760_write_byte(unsigned char com, unsigned int dat) { unsigned char i=0; unsigned char h_8bit, l_8bit; h_8bit=(uchar)(dat>>8)&0x00FF;//取高8位数据 l_8bit=(uchar)dat&0x00FF; //取低8位数据 DAC8760_LATCH_0; for(i=8;i>0;i--) { DAC8760_SCLK_0; if(com&0x80) { DAC8760_DIN_1; } else { DAC8760_DIN_0; } DAC8760_SCLK_1; com<<=1; } DAC8760_SCLK_0; delay_us(2); for(i=8;i>0;i--) { DAC8760_SCLK_0; if(h_8bit&0x80) { DAC8760_DIN_1; } else { DAC8760_DIN_0; } DAC8760_SCLK_1; h_8bit<<=1; } for(i=8;i>0;i--) { DAC8760_SCLK_0; if(l_8bit&0x80) { DAC8760_DIN_1; } else { DAC8760_DIN_0; } DAC8760_SCLK_1; l_8bit<<=1; } DAC8760_SCLK_0; DAC8760_LATCH_1; DAC8760_DIN_1; } |
|
相关推荐
2个回答
|
|
|
|
|
|
|
|
|
DAC8760输出数据最高位发送问题可能是由于数据格式不正确或者通信协议问题导致的。以下是一些建议和解决方案:
1. 检查数据格式:确保你发送的数据格式与DAC8760的要求一致。DAC8760通常使用16位数据格式,其中最高位是符号位。如果你的数据最高位为1,那么它将被视为负数,导致输出值变小。你可以尝试将数据转换为补码格式,以确保最高位为1时输出正确的值。 2. 检查通信协议:确保你使用的通信协议(如SPI或I2C)与DAC8760兼容。检查你的通信代码,确保数据传输过程中没有错误。 3. 检查硬件连接:检查DAC8760与微控制器之间的连接,确保所有引脚都正确连接。特别是Vout引脚,确保它没有受到干扰。 4. 检查电源:确保DAC8760的电源电压稳定且在规定的范围内。不稳定的电源可能导致输出值不稳定。 以下是修改后的DAC8760_write_byte函数,用于将数据转换为补码格式: ```c void DAC8760_write_byte(unsigned char com, unsigned int dat) { unsigned char i = 0; unsigned char h_8bit, l_8bit; // 将数据转换为补码格式 if (dat & 0x8000) { dat = ~dat + 1; dat |= 0x8000; } h_8bit = (unsigned char)(dat >> 8); l_8bit = (unsigned char)(dat & 0xFF); // 发送控制字节 for (i = 0; i < 8; i++) { // 根据你的通信协议发送控制字节的每一位 } // 发送数据的高8位 for (i = 0; i < 8; i++) { // 根据你的通信协议发送数据的高8位的每一位 } // 发送数据的低8位 for (i = 0; i < 8; i++) { // 根据你的通信协议发送数据的低8位的每一位 } } ``` 请注意,这个函数只是一个示例,你需要根据你的通信协议(如SPI或I2C)和硬件连接来修改它。希望这些建议能帮助你解决问题。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
550 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1514 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1338 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1758浏览 29评论
2785浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1725浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1635浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1646浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 18:12 , Processed in 0.708135 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
652