wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2228|回復: 7
收起左側

STC15與MAX31856的SPI讀取全是0xFF

[復制鏈接]
ID:90212 發表于 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))。
無論用stcisp中stc15的spi單主單從范例,還是虛擬spi,讀出的寄存器值都是0xFF(255)。
可以確定接線沒問題,如果接線錯誤讀出的就是0x00.
原理圖:

max31856

max31856


代碼如下:
  1. //本示例在Keil開發環境下請選擇Intel的8058芯片型號進行編譯
  2. //若無特別說明,工作頻率一般為11.0592MHz
  3. #include "reg51.h"
  4. #include<stdio.h>
  5. #include<intrins.h>

  6. #define FOSC        11059200UL
  7. #define BAUD        115200

  8. typedef unsigned char BYTE;
  9. typedef unsigned int WORD;
  10. typedef unsigned char u8;
  11. typedef unsigned int u16;

  12. #define SR_Read 0x0F
  13. #define     URMD    0           //0:使用定時器2作為波特率發生器
  14. //1:使用定時器1的模式0(16位自動重載模式)作為波特率發生器
  15. //2:使用定時器1的模式2(8位自動重載模式)作為波特率發生器
  16. sfr P1M1 = 0x91;    //PxM1.n,PxM0.n     =00--->Standard,    01--->push-pull
  17. sfr P1M0 = 0x92;    //                  =10--->pure input,  11--->open drain
  18. sfr P0M1 = 0x93;
  19. sfr P0M0 = 0x94;
  20. sfr P2M1 = 0x95;
  21. sfr P2M0 = 0x96;
  22. sfr P3M1 = 0xB1;
  23. sfr P3M0 = 0xB2;
  24. sfr P4M1 = 0xB3;
  25. sfr P4M0 = 0xB4;
  26. sfr P5M1 = 0xC9;
  27. sfr P5M0 = 0xCA;
  28. sfr P6M1 = 0xCB;
  29. sfr P6M0 = 0xCC;
  30. sfr P7M1 = 0xE1;
  31. sfr P7M0 = 0xE2;
  32. sfr T2H   = 0xd6;               //定時器2高8位
  33. sfr T2L   = 0xd7;               //定時器2低8位

  34. sfr  AUXR           =   0x8e;                   //輔助寄存器
  35. sfr P_SW1           =   0xa2;                   //外設功能切換寄存器1
  36. #define SPI_S0 0x04             //P_SW1.2
  37. #define SPI_S1 0x08             //P_SW1.3

  38. sfr SPSTAT      =   0xcd;       //SPI狀態寄存器
  39. #define SPIF        0x80        //SPSTAT.7                                
  40. #define WCOL        0x40        //SPSTAT.6                                
  41. sfr SPCTL       =   0xce;       //SPI控制寄存器
  42. #define SSIG        0x80        //SPCTL.7                                 
  43. #define SPEN        0x40        //SPCTL.6                                 
  44. #define DORD        0x20        //SPCTL.5                                 
  45. #define MSTR        0x10        //SPCTL.4                                 
  46. #define CPOL        0x08        //SPCTL.3                                 
  47. #define CPHA        0x04        //SPCTL.2                                 
  48. #define SPDHH       0x00        //CPU_CLK/4                              
  49. #define SPDH        0x01        //CPU_CLK/16                              
  50. #define SPDL        0x02        //CPU_CLK/64                              
  51. #define SPDLL       0x03        //CPU_CLK/128                             
  52. sfr SPDAT       =   0xcf;       //SPI數據寄存器
  53. sbit SPISS      =   P2 ^ 4;     //SPI從機選擇口, 連接到其它MCU的SS口
  54. //當SPI為一主多從模式時,請使用主機的普通IO口連接到從機的SS口

  55. sfr IE2         =   0xAF;       //中斷控制寄存器2
  56. #define ESPI        0x02        //IE2.1
  57. void InitUart();
  58. void InitSPI();

  59. u16 WenDu;
  60. u8 WenDu_Time, Error;
  61. BYTE SPISwap(BYTE dat);
  62. u8 SPI_RW_Reg(u8 reg, u8 value);
  63. ///////////////////////////////////////////////////////////
  64. void Delay500ms(void)        //@11.0592MHz
  65. {
  66.     unsigned char data i, j, k;
  67.     _nop_();
  68.     _nop_();
  69.     i = 22;
  70.     j = 3;
  71.     k = 227;
  72.     do
  73.     {
  74.         do
  75.         {
  76.             while (--k);
  77.         }
  78.         while (--j);
  79.     }
  80.     while (--i);
  81. }

  82. void main()
  83. {
  84.     u16 x, y;
  85.     P0M0 = 0x00;
  86.     P0M1 = 0x00;
  87.     P1M0 = 0x00;
  88.     P1M1 = 0x00;
  89.     P2M0 = 0x00;
  90.     P2M1 = 0x00;
  91.     P3M0 = 0x00;
  92.     P3M1 = 0x00;
  93.     P4M0 = 0x00;
  94.     P4M1 = 0x00;
  95.     P5M0 = 0x00;
  96.     P5M1 = 0x00;
  97.     P6M0 = 0x00;
  98.     P6M1 = 0x00;
  99.     P7M0 = 0x00;
  100.     P7M1 = 0x00;

  101.     InitUart();                 //初始化串口
  102.     InitSPI();                  //初始化SPI
  103.     IE2 |= ESPI;
  104.     EA = 1;
  105.     while (1)
  106.     {
  107.         Delay500ms()        ;
  108.         x = SPISwap(0x00);//00~0F 都是只讀配置reg
  109.         y = SPISwap(0x01);
  110.         printf("MAX31856_Read00:%d ;Read01:%d\n", x, y);
  111.     }
  112. }

  113. BYTE SPISwap(BYTE dat)
  114. {
  115.     SPDAT = dat;                //觸發SPI發送數據
  116.     while (!(SPSTAT & SPIF));   //等待發送完成
  117.     SPSTAT = SPIF | WCOL;       //清除SPI狀態位
  118.     return SPDAT;               //返回SPI數據
  119. }
  120. //SPI寫寄存器
  121. //reg:指定寄存器地址
  122. //value:寫入的值
  123. u8 SPI_RW_Reg(u8 reg, u8 value)
  124. {
  125.     u8 status;
  126.     status = SPISwap(reg); //返回從MISO讀出的數據,status應為上次向該寄存器內寫的value
  127.     SPISwap(value);        //寫入寄存器的值
  128.     return status;       // 返回狀態值
  129. }
  130. ///////////////////////////////////////////////////////////
  131. void InitUart()
  132. {
  133.     SCON = 0x5a;                //設置串口為8位可變波特率
  134. #if URMD == 0
  135.     T2L = (65536 - (FOSC / 4 / BAUD));
  136.     T2H = (65536 - (FOSC / 4 / BAUD)) >> 8;
  137.     AUXR = 0x14;                //T2為1T模式, 并啟動定時器2
  138.     AUXR |= 0x01;               //選擇定時器2為串口1的波特率發生器
  139. #elif URMD == 1
  140.     AUXR = 0x40;                //定時器1為1T模式
  141.     TMOD = 0x00;                //定時器1為模式0(16位自動重載)
  142.     TL1 = (65536 - (FOSC / 4 / BAUD));
  143.     TH1 = (65536 - (FOSC / 4 / BAUD)) >> 8;
  144.     TR1 = 1;                    //定時器1開始啟動
  145. #else
  146.     TMOD = 0x20;                //設置定時器1為8位自動重裝載模式
  147.     AUXR = 0x40;                //定時器1為1T模式
  148.     TH1 = TL1 = (256 - (FOSC / 32 / BAUD));
  149.     TR1 = 1;
  150. #endif
  151. }
  152. ///////////////////////////////////////////////////////////
  153. void InitSPI()
  154. {
  155.     ACC = P_SW1;                                //可用于測試U7,U7使用的是第二組SPI控制Flash
  156.     ACC &= ~(SPI_S0 | SPI_S1);                  //SPI_S0=1 SPI_S1=0
  157.     ACC |= SPI_S0;                              //(<b>P2.4///SPISS, P2.3/MOSI_2, P2.2/MISO_2, P2.1/SCLK_2</b>)
  158.     P_SW1 = ACC;

  159.     SPDAT = 0;                  //初始化SPI數據
  160.     SPSTAT = SPIF | WCOL;                       //清除SPI狀態
  161.     SPCTL =  SPEN | MSTR;                 //設置SPI為主模式
  162.     //SPCTL = SPEN | MSTR | SSIG | SPDLL;        //主機模式 忽略SS引腳
  163. }
復制代碼
有沒遇到同類問題的高手請指點一下。

原資料包: MAX31856模塊資料.zip (1.47 MB, 下載次數: 6)

回復

使用道具 舉報

ID:161164 發表于 2024-7-22 09:25 | 顯示全部樓層
2024-07-22_092021.png 2024-07-22_092313.png

你沒有置位SSIG
而且SS腳需要在讀寫前手動拉低


回復

使用道具 舉報

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:430492 發表于 2024-7-23 08:52 | 顯示全部樓層
如果不是硬件的SPI,那大概率是時序的問題。
回復

使用道具 舉報

ID:90212 發表于 2024-7-23 22:09 | 顯示全部樓層
懷疑max31856板子故障,特意用Arduino mega2560搭了下,直接用現成的范例,軟件spi,測試是正常的:
2024-07-23_220513.png


沒接熱電偶,直接短接可以讀出冷端和0mv對應的溫度:
2024-07-23_220432.png


回復

使用道具 舉報

ID:90212 發表于 2024-7-31 20:03 | 顯示全部樓層
總算熬了幾個夜搞清楚了,max31856規格書沒認真看,以為跟以往一樣下個范例改吧改吧就可以用了,其實好多案例都是害人的。
2024-07-31_195145.png

2024-07-31_195312.png

2024-07-31_195343.png

回復

使用道具 舉報

ID:938266 發表于 2024-10-13 12:57 | 顯示全部樓層
gongzhu 發表于 2024-7-31 20:03
總算熬了幾個夜搞清楚了,max31856規格書沒認真看,以為跟以往一樣下個范例改吧改吧就可以用了,其實好多案 ...

大佬,可以發一下您的代碼嗎,我最近也在調試這個模塊測水溫,但是測出來的溫度誤差很大
回復

使用道具 舉報

ID:1139908 發表于 2025-10-10 14:43 | 顯示全部樓層
大佬求代碼測試
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
污污视频在线免费| 日韩国产精品久久久久久亚洲| 欧美日韩一二三四| 国内自拍视频一区二区三区| 国产原创一区二区三区| 亚洲视频免费看| 5858s免费视频成人| 日韩网站在线观看| 国产精品亚洲激情| www亚洲国产| 亚洲精品乱码久久久久久动漫| 性生交大片免费全黄| 97成人在线观看| 国产精品区一区二| h色视频在线观看| 精品众筹模特私拍视频| 在线日韩一区| 久久成人免费网站| 伊人一区二区三区| 国产偷国产偷亚洲清高网站| 国产精品成人一区二区三区吃奶| 亚洲视频sss| 男人女人拔萝卜视频| 国产主播在线播放| 亚洲精品久久久成人| 看黄色免费网站| 中文字幕在线免费观看视频| 日韩在线不卡| 成人一区二区三区| 色婷婷久久久亚洲一区二区三区 | 91丨精品丨国产| 亚洲天堂免费| 久久奇米777| 欧美一区三区四区| 国产精品27p| 激情五月婷婷六月| 九九热久久免费视频| 理论片中文字幕| 国产美女在线播放| 国产福利一区二区三区在线播放| 欧美激情 亚洲a∨综合| 中文字幕av一区二区三区免费看| 精品久久一二三区| 国内在线免费视频| 亚洲欧美在线观看视频| 日本丰满少妇一区二区三区| 久久夜色精品亚洲| 亚洲欧美乱综合| 亚洲春色一区二区三区| 亚洲精品欧美在线| 国产精品日本一区二区不卡视频| 国产欧美高清视频在线| 懂色一区二区三区免费观看 | 国产乱码精品一区二三区蜜臂| 国产精品合集一区二区| 黄网站在线免费| 精品国产乱码久久久久久蜜坠欲下| 国产成+人+日韩+欧美+亚洲| 911精品国产一区二区在线| 欧美亚洲视频一区二区| 久久精品国产sm调教网站演员| 黑人操日本美女| 牛人国产偷窥女洗浴在线观看| 99中文字幕一区| 国产调教一区二区三区| 久久久av毛片精品| 国产亚洲精品一区二555| 久久久久久久久一区二区| 先锋资源av在线| 人人妻人人澡人人爽精品日本| 亚洲精品男人| 自拍偷拍一区| 国产午夜三级一区二区三| 一本大道久久加勒比香蕉| 色综合久久久久久久久五月| www.日本高清视频| 69国产成人精品视频软件| 久久电影tv| 日韩—二三区免费观看av| 欧美伊人精品成人久久综合97 | 欧美日韩一级二级| 国产精品主播视频| 亚洲成人手机在线观看| 国产精品国产三级国产普通话对白| 香港日本韩国三级| 波多野结衣在线一区二区| 成人黄色大片在线观看| 亚洲码在线观看| 婷婷四月色综合| 全网免费在线播放视频入口| 玖玖在线视频| 亚洲综合网狠久久| 国产色一区二区| 伦伦影院午夜日韩欧美限制| 国产美女主播在线播放| 在线视频你懂得| 国产中文字幕在线观看| 中文字幕一区二区三三| 天天综合网 天天综合色| 国产在线久久久| jizz日本免费| 一个人免费观看在线视频www| 性欧美hd调教| 懂色av一区二区三区免费观看 | 精品一成人岛国片在线观看| 日本久久免费| 成人午夜伦理影院| 久久久精品在线| 亚洲人成无码www久久久| 亚洲第一天堂在线观看| 成人影院在线看| 久久三级福利| 精品久久免费看| 在线丝袜欧美日韩制服| 久久精品视频5| 精品电影在线| 国产真实久久| 日韩免费高清视频| 中国 免费 av| 一级黄色片在线观看| av在线日韩国产精品| 亚洲另类自拍| 日韩视频国产视频| 一本一本a久久| 天天干天天色综合| av色图一区| 国偷自产一区二区免费视频| 国产在线乱码一区二区三区| 日韩中文字幕在线视频| 亚洲一区二区蜜桃| 亚洲综合激情另类专区老铁性| 夜鲁夜鲁夜鲁视频在线播放| 99精品热视频| 26uuu另类亚洲欧美日本老年| 国产情侣久久久久aⅴ免费| 在线观看的黄色网址| 欧美人妖视频| 色狠狠av一区二区三区| 日韩欧美一区二区三区四区五区| 99re这里只有精品在线| 天堂av中文在线| 国产99久久久国产精品潘金网站| 美女久久久久久久| 国产精品久久久久久亚洲av| 免费黄色av网站| 国产精品毛片一区二区在线看| 制服丝袜日韩国产| 亚洲 欧美 综合 另类 中字| 无码精品在线观看| 经典三级久久| 好吊成人免视频| 欧美在线视频一区二区三区| 在线观看免费视频一区| av资源新版天堂在线| 久久精品视频网| 国产在线拍偷自揄拍精品| 久久久久久国产精品视频| 欧美成人性生活视频| 国产成人亚洲综合色影视| 午夜精品美女自拍福到在线| 乐播av一区二区三区| 麻豆电影在线观看| 男女视频一区二区| 久久久亚洲天堂| 91精品国自产在线| 国产一级片在线| 国产成a人亚洲精| 国产精品中文久久久久久久| 97免费在线观看视频| 大黄网站在线观看| 国产精品成人午夜| 欧美久久久久久久| 亚洲国产精品一| 日韩精品亚洲专区在线观看| 日本高清成人免费播放| 人人妻人人澡人人爽欧美一区双| 福利视频理论电影| 欧美hentaied在线观看| 亚洲另类欧美自拍| 久久人人爽人人人人片| 天天影院图片亚洲| www.亚洲在线| 国产原创精品| 免费看国产片在线观看| 97se亚洲| 精品三级在线观看| 欧美午夜精品一区二区| 天堂av在线资源| 成人激情文学综合网| 99理论电影网| 精品久久人妻av中文字幕| av自拍一区| 亚洲成人黄色在线观看| 日韩精品国产一区| 黄色免费在线播放| 中文字幕欧美日本乱码一线二线 | 欧美四级剧情无删版影片| 日韩一区自拍| www.亚洲人.com| 日本爱爱小视频| 国产剧情av在线播放| 亚洲国产日韩精品| 国产日韩av网站| 天天草天天爽| 国产一区欧美一区| 成人在线看片| 中国女人精69xxxxxx视频| jizz日韩| 国产亚洲精品超碰| 亚洲国产精品视频一区| 久久精品一区二区三区资源网| 欧美国产91| 97欧美精品一区二区三区| 国内精品福利视频| 午夜视频一区二区在线观看| 亚洲成人精品av| 亚洲一区二区乱码| 日韩三级电影视频| 狠狠躁18三区二区一区| 亚洲少妇久久久| 亚洲女人视频| 日韩毛片视频在线看| 欧美大片在线播放| 天堂男人av| 国产亚洲精品中文字幕| 国产一级黄色录像片| 18以下岁禁止1000部免费| 国产一区二区导航在线播放| 好吊色欧美一区二区三区视频| 天堂中文在线观看| 99热免费精品在线观看| 成人黄色av播放免费| 人妻视频一区二区三区| 在线不卡视频| 91精品久久久久久综合乱菊| 天天操天天射天天| 狠狠综合久久| 国产欧美中文字幕| 亚洲色图另类小说| 一区二区三区福利| 亚洲精品免费网站| 青青青青国产视频| 久久精品国产一区二区三| 精品一区久久久久久| 国产aⅴ2021| 国产一区在线看| 亚洲精品国产精品国自产| a级黄色毛片| 久久久99免费| 欧美 日韩精品| 第一页在线观看| 色综合久久六月婷婷中文字幕| 亚洲黄色片免费看| 性直播体位视频在线观看| 欧美巨大另类极品videosbest| 久久无码人妻精品一区二区三区 | 免费不卡在线观看| 美国av一区二区三区| 草莓视频性福宝| 99久久精品免费| 无码日本精品xxxxxxxxx| 美女的诞生在线观看高清免费完整版中文| 国产精品午夜在线| 色哟哟精品视频| 国产二区三区在线| 欧美日韩二区三区| 永久免费观看片现看| 日本在线一区二区三区| 久久精品小视频| 国产三区在线播放| aa国产精品| 蜜桃日韩视频| av网站免费| 亚洲欧美日韩国产另类专区| 成人激情视频网| 亚洲大肥女ass| 精品一区二区三区在线观看| 亚洲免费不卡| 另类av导航| 欧美性极品xxxx娇小| 日韩视频在线观看免费视频| 九色精品蝌蚪| 91精品国产自产91精品| 四虎影视18库在线影院 | 国产午夜精品久久| 999在线免费视频| 国产三级伦理在线| 亚洲欧美综合另类中字| 伊人成人在线观看| 久久一本综合频道| 欧美爱爱视频网站| 成人综合影院| 3d动漫精品啪啪1区2区免费| 久久中文字幕无码| 亚洲自拍偷拍网| 久久综合精品一区| 屁屁影院在线观看| 欧美久久高跟鞋激| 日韩精品手机在线| 亚洲手机在线| 亚洲va久久久噜噜噜久久狠狠| 色黄视频在线| 精品视频一区 二区 三区| 男女羞羞免费视频| 888久久久| 欧美日韩在线观看一区| 香蒸焦蕉伊在线| 91精品一区二区三区在线观看| 日韩三级小视频| 亚洲欧洲日本一区二区三区| 一本久久a久久精品vr综合| 免费观看在线黄色网| 日韩精品在线私人| 亚洲精品无amm毛片| 国产传媒日韩欧美成人| 视色视频在线观看| 亚洲狼人在线| 国产精品欧美亚洲777777| 88av看到爽| 色94色欧美sute亚洲线路一ni| 青草草在线视频| 国产精品99一区二区| 国产又大又长又粗又黄| caopo在线| 伊人精品在线观看| 男女啪啪免费体验区| 久久久亚洲精品一区二区三区| 亚洲天堂小视频| 台湾亚洲精品一区二区tv| 国产女主播一区二区三区| 日本福利片高清在线观看| 亚洲第一精品福利| 丁香六月天婷婷| 国产亚洲一二三区| 白丝女仆被免费网站| 91青青国产在线观看精品| 视频一区视频二区视频三区视频四区国产 | 亚洲综合丝袜美腿| 少妇被躁爽到高潮无码文| 亚洲先锋成人| 无码专区aaaaaa免费视频| 美女福利视频导航| 亚洲一区欧美一区| 日本亚洲色大成网站www久久| 久久久夜精品| 尤蜜粉嫩av国产一区二区三区| 国产一区二区在线观| 亚洲xxxx做受欧美| 可以在线观看的av网站| 国产一区二区日韩| 国产亚洲精品久久久久久青梅| 一区二区不卡在线视频 午夜欧美不卡在 | 精品一卡二卡三卡四卡日本乱码| 中文字幕在线视频区| 久久久精品国产| 免费网站观看电影入口| 欧美三级中文字幕在线观看| 91精品国产乱码久久久| 久久日韩粉嫩一区二区三区| 久久婷婷五月综合| 国产日韩1区| 九九热免费精品视频| 免费视频亚洲| 精品日韩在线播放| 97欧美成人| 国产精品成人一区二区三区| 黄色一级片在线观看| 久久久伊人欧美| 国产精品三级a三级三级午夜| 亚洲成人国产精品| 九色国产蝌蚪| 色香蕉久久蜜桃| 国产高清视频免费| 亚洲少妇中出一区| 国产在线观看黄色| 99视频国产精品| av最新在线观看| 六月丁香综合在线视频| 国产网站无遮挡| 一本久道久久综合婷婷鲸鱼| 手机免费av片| 国产精品久久久乱弄| 久久久久久久少妇| 狠狠综合久久av一区二区蜜桃| 黄色一级片国产| 中文字幕一区图| 91手机视频在线| 97视频一区| 国产在线无码精品| www.爱久久| www国产免费| 精品日产乱码久久久久久仙踪林| 少妇熟女一区二区| 91精品久久久久久综合五月天| 亚洲一区二区三区精品动漫| 欧美一区二区三区婷婷| 欧美性色黄大片人与善| 日日av拍夜夜添久久免费| 精品国产乱码久久久久| 久久sese|