发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名
[问答] 如何使用函数Script()和SpRead()来读取MX66 75?
104 SPI 编译器 XC8
分享
我试着用K型热电偶。但我需要把它连接到一个信号调节装置。该设备为MX66 75,该设备与PIC16F877 A通信,采用SPI协议。我试图使用XC8编译器和SPI库来实现它:https://electrosome.com/s...xc8/。显然,我所要做的就是读取MX66 75发送的信息。这个信息是温度,所以我不需要对信息做任何进一步的处理,只要阅读它(或者至少这是我的想法,但我不确定)。但是我不知道如何使用函数Script()和SpRead()来读取它。我的Scimic是这样的。你能给我一些启发吗,我是新来的,我真的很感激任何帮助。谢谢。这是SPI.C文件:
0
2019-11-7 11:47:15   评论 分享淘帖 邀请回答

相关问题

17个回答
我的Smithic iStTPS://S2.PothMig.Org/98FoFG4QX/SPI.PNG
2019-11-7 12:07:04 评论

举报

这个SPI代码出错有几个原因。首先,它试图把SPI当作一个UART,分别进行读和写。每个SPI事务都是同时读和写,并且应该以相同的方式处理。该代码在写时不读取SSPBUF寄存器,所以BF标志将显示出来。设置ays,所以等待就绪(wait wait.)测试不起作用。省略读和写函数,并使用一个“.”函数。第二,您使用的是CS信号,但是代码没有控制它。您应该在传输数据之前将其设置为低,然后在完成之后再次设置为高。
2019-11-7 12:16:58 评论

举报

MAX6675没有SDI引脚,所以发送什么数据并不重要,但是必须发送一些东西来触发每个事务,只是发送什么并不重要,所以也可以是零。
2019-11-7 12:36:52 评论

举报

我认为数据类型有问题,因为当我编译时,我得到下一个:
2019-11-7 12:50:44 评论

举报

确保SPIXXFER函数位于调用它的代码之前,否则您将需要为它创建函数原型。
2019-11-7 12:58:00 评论

举报

2019-11-7 13:16:48 评论

举报

我添加了下一行代码:TRISCbits.TRISC3=0;//SCK作为输出TRISCbits.TRISC4=1;//SDI作为输入TRISBbits.TRISB5=0;//RB5作为输出,还修改:sprintf(._temp,“%6g”,.);但是现在LCD显示这个奇怪的数字:5120.54096.752049138258705.513825.5……等
2019-11-7 13:54:30 评论

举报

尝试只打印您从传感器获得的原始值,看看是否有意义。我还没有验证您的SPI是否正在传感器正确的边缘上计时。
2019-11-7 14:04:28 评论

举报

我想也许是我的SPI没有在正确的边缘上计时。这就是我在示波器中看到的:在LCDRES-芯片选择GROLL—CCOLLY-SDI中,我得到了一个“51213”。
2019-11-7 14:17:48 评论

举报

51213是0xC80D和…有道理,没错!在第一个字节和第二个C8中的0D,所以…你希望从传感器读取什么?
2019-11-7 14:24:11 评论

举报

数据表(https://datasheets.maximi...com/en/ds/MAX6675.pdf)说:“数据以12位分辨率、SPI兼容的只读格式输出”。这很奇怪,因为我没有一个12位分辨率的输出。我想它直接给你温度。
2019-11-7 14:29:11 评论

举报

事实上,我想我有,因为有16位,但只有12位是温度。但是,除了如何读取SO输出的问题之外,还有其他问题,因为在LCD中显示的数字不是恒定的,每当我上新课时,它们都会改变。
2019-11-7 14:34:59 评论

举报

你必须右移3次并移除“伪符号位”,我想这样,你的号码变成0x901,意思是大约2305…
2019-11-7 14:42:39 评论

举报

但是温度应该是111摄氏度。我认为还有更大的问题。
2019-11-7 14:56:02 评论

举报

使用热电偶,如果我没有错的话,你必须对你的传感器“校准”ADC。
2019-11-7 15:10:48 评论

举报

原始值有问题。它应该把第一个字节放在原始值的上位字节,把第二个字节放在下位字节,所以0DC8,不是C80DI希望正确地完成这个操作,但是可能您需要强制它,例如,这两个语句不是不相容的。它给您带来了可怕的温度。也就是说,作为线性的0.25度增量的值。这是存储在12位中的数字,16位值内,如图所示。因此,如果原始值是0x8CD,那么指定的12位是(0x08CD&0b0111111111000)>3=0x119=281。4岁,70.25岁
2019-11-7 15:18:19 评论

举报

MAX6675ISA

这个是最新的datasheet给你参考下
MAX6675.pdf (466.59 KB, 下载次数: 0)






2019-11-20 20:12:09 评论

举报

只有小组成员才能发言,加入小组>>

71个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /6 下一条

快速回复 返回顶部 返回列表