找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

STC15与MAX31856的SPI读取全是0xFF

查看数: 1573 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-7-22 08:22

正文摘要:

淘的一个max31856现成的模块,附送了Arduino范例和一个FreeRTOS的范例,恰恰对这两个很陌生,便根据max31856文档改成了STC15的第二组spi接口((P2.4///SPISS, P2.3/MOSI_2, P2.2/MISO_2, P2.1/SCLK_2))。 无论用st ...

回复

ID:938266 发表于 2024-10-13 12:57
gongzhu 发表于 2024-7-31 20:03
总算熬了几个夜搞清楚了,max31856规格书没认真看,以为跟以往一样下个范例改吧改吧就可以用了,其实好多案 ...

大佬,可以发一下您的代码吗,我最近也在调试这个模块测水温,但是测出来的温度误差很大
ID:430492 发表于 2024-7-23 08:52
如果不是硬件的SPI,那大概率是时序的问题。
ID:90212 发表于 2024-7-22 21:05
lkc8210 发表于 2024-7-22 09:25
你没有置位SSIG
而且SS脚需要在读写前手动拉低

按你所说,初始化忽略SS引脚,并把CS脚拉低(就一主一从),万用表测试也确实保持着0V,测试还是老样子。
  1. void InitSPI()
  2. {
  3.     ACC = P_SW1;                                //可用于测试U7,U7使用的是第二组SPI控制Flash
  4.     ACC &= ~(SPI_S0 | SPI_S1);                  //SPI_S0=1 SPI_S1=0
  5.     ACC |= SPI_S0;                              //(P2.4///SPISS, P2.3/MOSI_2, P2.2/MISO_2, P2.1/SCLK_2)
  6.     P_SW1 = ACC;  

  7.     SPDAT = 0;                  //初始化SPI数据  
  8.           SPSTAT = SPIF | WCOL;                       //清除SPI状态
  9.     SPISS = 0;//片选恒定拉低
  10.     SPCTL =  SPEN | MSTR| SSIG ;                 //设置SPI为主模式 忽略SS引脚

  11. }
复制代码



ID:161164 发表于 2024-7-22 09:25


你没有置位SSIG
而且SS脚需要在读写前手动拉低


小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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