搜索
bottom↓
回复: 65

谁用过sht20这块温湿度传感器,有调通的程序分享下吧

  [复制链接]

出0入0汤圆

发表于 2012-8-2 16:57:28 | 显示全部楼层 |阅读模式
论坛各位大佬,谁用过sht20这块温湿度传感器,有调通的程序分享下吧,51单片机的代码最好,或者FPGA的。

这里可以变为一个关于sht1X、sht2X和sht7X  瑞士Sensirion的温湿度传感器的交流区


我之前也发过一个帖子,是关于sht10的调试通过的代码,并且已经有人用此程序也调试通过,有问题可以交流,欢迎拍砖http://www.amobbs.com/thread-5489134-1-1.html

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

 楼主| 发表于 2012-8-6 23:27:46 | 显示全部楼层
调试出来了,使用51单片机   STC89C52 ,用软件模拟I2C,因为通信的不是标准的I2C
~~~  结贴   ~~~
有需要啊的留下邮箱。

出0入0汤圆

发表于 2012-8-12 11:06:43 | 显示全部楼层
a283912829@126.com

出0入0汤圆

发表于 2012-8-12 11:07:00 | 显示全部楼层
谢谢
      

出0入4汤圆

发表于 2012-8-12 11:08:26 | 显示全部楼层
I2C总线,有点难受,一旦连接线有问题就会死机,所以得加个判断,线断了也不会影响主循环运行

出0入0汤圆

 楼主| 发表于 2012-8-13 09:06:09 | 显示全部楼层
本帖最后由 dingshidong214 于 2012-8-13 09:09 编辑
a627236799 发表于 2012-8-12 11:06


不好意思,刚看到,在家里的电脑里,晚上回去发给你 。能问下你做什么用吗?项目吗

出0入0汤圆

 楼主| 发表于 2012-8-13 09:08:55 | 显示全部楼层
electricit 发表于 2012-8-12 11:08
I2C总线,有点难受,一旦连接线有问题就会死机,所以得加个判断,线断了也不会影响主循环运行 ...

1、死机是指什么MCU还是PC?一个传感器能把搞死机也不可思议。呵呵
2、加什么判断,校验CRC?我没加CRC,一般办公室或家里环境下也挺正常的。不知CRC在什么情况下才发挥功效?

出0入4汤圆

发表于 2012-8-13 10:16:38 | 显示全部楼层
dingshidong214 发表于 2012-8-13 09:08
1、死机是指什么MCU还是PC?一个传感器能把搞死机也不可思议。呵呵
2、加什么判断,校验CRC?我没加CRC, ...

I2C里读从机的时候都会有WHILE(XXX==1);这样的等待信号的语句,如果信号没有了,你说MCU会不会死呢,加个超时即可

出0入0汤圆

 楼主| 发表于 2012-8-13 14:01:45 | 显示全部楼层
electricit 发表于 2012-8-13 10:16
I2C里读从机的时候都会有WHILE(XXX==1);这样的等待信号的语句,如果信号没有了,你说MCU会不会死呢,加个 ...

I2C我是按时序写的
大概分为以下几个子函数:

void I2C_Delay (uchar t);//延时

void I2C_Init(void);//I2C初始化

void I2C_Start(void);//起始

void I2C_Stop(void);//停止

uchar I2C_WRByte(uchar WRByte);//写一个字节数据

uchar I2C_RDByte(uchar AckValue);//读一个字节数据

void SoftReset(void);//软复位

float ReadSht20(char whatdo);//读取

用的是非主机模式和软件复位实现的。

出0入0汤圆

发表于 2012-8-13 14:04:40 | 显示全部楼层
请问下,sht10和sht20有什么区别,还有它们是什么价位?

出0入0汤圆

 楼主| 发表于 2012-8-13 15:47:20 | 显示全部楼层
powermeter 发表于 2012-8-13 14:04
请问下,sht10和sht20有什么区别,还有它们是什么价位?

sht10大概是27元左右,sht20大概是35元左右.测量的性能上来说差别很小,无非是测量更精确的差别。但是一般场合两款芯片都绝对可以胜任。有一点是芯片封装完全不一样,sht20是DFN式的不太好焊接,但是占的布板的时候面积很小这就是优势。两款芯片都是超低功耗的。

出0入0汤圆

发表于 2012-8-13 15:58:21 | 显示全部楼层
谢谢。打算用sht10做个温湿度控制器。

出0入0汤圆

 楼主| 发表于 2012-8-13 18:41:31 | 显示全部楼层
powermeter 发表于 2012-8-13 15:58
谢谢。打算用sht10做个温湿度控制器。

sht10,挺好的,我现在一直在用,帖子里的代码如果你用51单片机就可知直接用。根本不用修改,可以当做sht10 的驱动,不用过多管怎么实现的,腾出时间去忙别的,看做往电脑里装了一个驱动。

出0入0汤圆

 楼主| 发表于 2012-8-20 11:11:45 | 显示全部楼层
FPGA前几天  也调试通了  

出350入8汤圆

发表于 2013-1-14 10:03:41 | 显示全部楼层
好东西,先保留!

出0入0汤圆

发表于 2013-5-9 19:49:20 | 显示全部楼层
LZ 我刚好有个一个项目就是用SHT21 但是还没调通啊,能否给我发一份啊 谢谢啊 578613732@qq.com

出0入0汤圆

 楼主| 发表于 2013-5-12 10:35:51 | 显示全部楼层
tal578613732 发表于 2013-5-9 19:49
LZ 我刚好有个一个项目就是用SHT21 但是还没调通啊,能否给我发一份啊 谢谢啊  ...

提供给你做参考吧。。。SHT20.c  和SHT20.h  单片机:STC89C52RC
  1. /***************************************************************
  2. *   File name    :  SHT20.c  
  3. *   Description  :  SHT20 Humidity and Temperature Sensors
  4. *     M C U      :  STC89C52RC
  5. *   Compiler     :  Keil uVision V4.00a (C51)
  6. *   Created by   :  dingshidong
  7. *   Copyright    :  Copyright(c) 2012 WUXI   
  8. *   Created data :  2012.08.07  
  9. *   Modified data:  2012.08.10
  10. *   Vision       :  V1.0
  11. *****************************************************************/
  12. #include <STC89.H> //stc89cxx head file
  13. #include "SHT20.H" //sht20 head file
  14. /*================================================================
  15. 【  Name  】Pin Description
  16. 【Function】模拟IIC使用的引脚定义,注意要上拉电阻,SDA和SCL均上拉10KΩ电阻
  17. 【  Notes 】
  18. 【 Author 】dingshidong
  19. 【  Data  】2012.08.07
  20. ================================================================*/
  21. /*************Pin Description*************
  22.    P2.6------SCK     (SHT20)
  23.    P2.7------DATA    (SHT20)
  24. *****************************************/
  25. sbit SDA=P2^7;                 // define data pin
  26. sbit SCL=P2^6;                 // define clock pin

  27. /*================================================================
  28. 【  Name  】
  29. 【Function】SHT20的I2C地址
  30. 【  Notes 】
  31. 【 Author 】dingshidong
  32. 【  Data  】2012.08.07
  33. ================================================================*/
  34. #define SHT20ADDR 0x80
  35. /*================================================================
  36. 【  Name  】
  37. 【Function】应答位电平定义
  38. 【  Notes 】
  39. 【 Author 】dingshidong
  40. 【  Data  】2012.08.07
  41. ================================================================*/
  42. #define ACK            0            //应答信号
  43. #define NACK        1             //非应答信号

  44. /*================================================================
  45. 【  Name  】void Delay(uint t)
  46. 【Function】delay Nms
  47. 【  Notes 】
  48. 【 Author 】dingshidong
  49. 【  Data  】2012.08.07
  50. ================================================================*/
  51. void Delay(uint t)
  52. {
  53.         uchar i;
  54.         while(t--)
  55.         {
  56.                 for(i=0;i<200;i++);
  57.         }                                          
  58. }
  59. /*------------------------------------------------------------*/
  60. /**********************Simulation I2C Function*****************/
  61. /*------------------------------------------------------------*/

  62. /*================================================================
  63. 【  Name  】void I2CDelay (uchar t)
  64. 【Function】模拟IIC用的短延时 us
  65. 【  Notes 】
  66. 【 Author 】dingshidong
  67. 【  Data  】2012.08.07
  68. ================================================================*/
  69. void I2CDelay (uchar t)          
  70. {
  71.         while(t--);
  72. }

  73. /*================================================================
  74. 【  Name  】void I2CInit(void)
  75. 【Function】I2C初始化,空闲状态
  76. 【  Notes 】
  77. 【 Author 】dingshidong
  78. 【  Data  】2012.08.07
  79. ================================================================*/
  80. void I2CInit(void)
  81. {
  82.         SDA = 1;
  83.         I2CDelay(1);
  84.         SCL = 1;
  85.         I2CDelay(1);
  86. }

  87. /*================================================================
  88. 【  Name  】void I2CStart(void)
  89. 【Function】I2C起始信号
  90. 【  Notes 】SCL、SDA同为高,SDA跳变成低之后,SCL跳变成低         
  91. 【 Author 】dingshidong                                                                                                                         
  92. 【  Data  】2012.08.07
  93. ================================================================*/
  94. void I2CStart(void)
  95. {       
  96.           SDA = 1;                            //发送起始条件的数据信号--ZLG
  97.           SCL = 1;
  98.           I2CDelay(5);                    //起始条件建立时间大于4.7us,延时--ZLG
  99.           SDA = 0;                            //发送起始信号-ZLG
  100.         I2CDelay(5);                    //起始条件锁定时间大于4μs--ZLG
  101.           SCL = 0;                            //钳住I2C总线,准备发送或接收数据--ZLG
  102.         I2CDelay(5);         
  103. }

  104. /*================================================================
  105. 【  Name  】void I2CStop(void)
  106. 【Function】I2C停止信号
  107. 【  Notes 】SCL、SDA同为低,SCL跳变成高之后,SDA跳变成高           
  108. 【 Author 】dingshidong
  109. 【  Data  】2012.08.07
  110. ================================================================*/
  111. void I2CStop(void)
  112. {       
  113.           SDA = 0;                        //发送结束条件的数据信号--ZLG
  114.           SCL = 0;
  115.         I2CDelay(5);
  116.           SCL = 1;                        //发送结束条件的时钟信号--ZLG
  117.           I2CDelay(5);                //结束条件建立时间大于4μs--ZLG
  118.           SDA = 1;                        //发送I2C总线结束信号--ZLG
  119.           I2CDelay(5);
  120. }

  121. /*================================================================
  122. 【  Name  】uchar I2C_Write_Byte(uchar WRByte)
  123. 【Function】I2C写一个字节数据,返回ACK或者NACK
  124. 【  Notes 】从高到低,依次发送
  125. 【 Author 】dingshidong
  126. 【  Data  】2012.08.07
  127. ================================================================*/
  128. uchar I2C_Write_Byte(uchar Write_Byte)         //Sendbyte
  129. {
  130.         uchar i;      
  131.         for(i=0;i<8;i++)              //要传送的数据长度为8位--ZLG
  132.         {         
  133.                 if(Write_Byte&0x80)              //判断发送位--ZLG
  134.                 {
  135.                         SDA = 1;       
  136.                 }
  137.                 else
  138.                 {
  139.                         SDA = 0;
  140.                 }
  141.                 I2CDelay(1);               
  142.                 SCL=1;                                  //输出SDA稳定后,拉高SCL给出上升沿,从机检测到后进行数据采样      
  143.                 I2CDelay(5);                        //保证时钟高电平周期大于4μs--ZLG
  144.                 SCL=0;
  145.                 I2CDelay(1);
  146.                 Write_Byte <<= 1;
  147.         }
  148.         I2CDelay(4);
  149.         SDA = 1;                                  //8位发送完后释放数据线,准备接收应答位-ZLG
  150.     SCL = 1;                      //MCU告知SHT2X数据发送完毕,等待从机的应答信号       
  151.         I2CDelay(5);                  
  152.         /*以下是判断I2C总线接收应到应答信号是ACK还是NACK*/
  153.         if(SDA==1)                                   //SDA为高,收到NACK
  154.                 return NACK;       
  155.         else                                           //SDA为低,收到ACK               
  156.                 return ACK;       
  157.         SCL=0;
  158.         I2CDelay(15);   
  159. }

  160. /*================================================================
  161. 【  Name  】uchar I2C_Read_Byte(uchar AckValue)
  162. 【Function】I2C读一个字节数据,入口参数用于控制应答状态,ACK或者NACK
  163. 【  Notes 】从高到低,依次接收
  164. 【 Author 】dingshidong
  165. 【  Data  】2012.08.07
  166. ================================================================*/
  167. uchar I2C_Read_Byte(uchar AckValue)//receivebyte
  168. {
  169.         uchar i,RDByte=0;
  170.         SCL=0;                                                  //置时钟线为低,准备接收数据位--ZLG
  171.         SDA = 1;                                  //释放总线,置数据线为输入方式--ZLG       
  172.         for (i=0;i<8;i++)
  173.         {       
  174.                 SCL = 1;                          //SCL高电平期间,采集SDA信号,并作为有效数据 //置时钟线为高使数据线上数据有效--ZLG
  175.                 I2CDelay(2);
  176.                 RDByte <<= 1;                  //移位
  177.                 if(SDA==1)                           //采样获取数据
  178.                 {
  179.                         RDByte |= 0x01;
  180.                 }
  181.                 else
  182.                 {
  183.                         RDByte &= 0xfe;
  184.                 }
  185.                 I2CDelay(1);
  186.                 SCL = 0;                             //下降沿,从机给出下一位值
  187.                 I2CDelay(6);
  188.         }   
  189.         /*以下是I2C总线发送应答信号ACK或者NACK*/
  190.         SDA = AckValue;                      //应答状态       
  191.         I2CDelay(3);
  192.         SCL = 1;                        
  193.           I2CDelay(5);                  //时钟低电平周期大于4μs--ZLG
  194.           SCL = 0;                                  //清时钟线,钳住I2C总线以便继续接收--ZLG               
  195.           I2CDelay(15);
  196.         //SDA = 1;       
  197.         return RDByte;
  198. }

  199. /*================================================================
  200. 【  Name  】void SoftReset(void)
  201. 【Function】SHT20软件复位,主函数中调用
  202. 【  Notes 】从高到低,依次接收
  203. 【 Author 】dingshidong
  204. 【  Data  】2012.08.07
  205. ================================================================*/
  206. void SoftReset(void)                    
  207. {
  208.         I2CInit();                       //I2C initialize
  209.         I2CStart();                      //start I2C
  210.         I2C_Write_Byte(SHT20ADDR&0xfe);  //I2C address + write
  211.         I2C_Write_Byte(0xfe);                         //soft reset
  212.         I2CStop();                       //stop I2C
  213. }

  214. /*================================================================
  215. 【  Name  】void SET_Resolution(void)
  216. 【Function】写寄存器,设置分辨率
  217. 【  Notes 】
  218. 【 Author 】dingshidong
  219. 【  Data  】2012.08.07
  220. ================================================================*/
  221. void SET_Resolution(void)                    
  222. {
  223.   I2CStart();                                                                         //Start I2C
  224.   if(I2C_Write_Byte(SHT20ADDR&0xfe)==ACK)       //I2C address + write + ACK
  225.   {
  226.    if(I2C_Write_Byte(0xe6)==ACK)                            //写用户寄存器
  227.     {  
  228.      if(I2C_Write_Byte(0x83)==ACK);                            //设置分辨率   11bit RH% 测量时间:12ms(typ.) & 11bit T℃ 测量时间:9ms(typ.)
  229.     }
  230.   }
  231.    I2CStop();                                   //Stop I2C         
  232. }

  233. /*================================================================
  234. 【  Name  】float ReadSht20(char whatdo)
  235. 【Function】非主机模式,读取函数函数
  236. 【  Notes 】
  237. 【 Author 】dingshidong
  238. 【  Data  】2012.08.07
  239. ================================================================*/
  240. float ReadSht20(char whatdo)
  241. {
  242.         float temp;
  243.         uchar MSB,LSB;
  244.         float Humidity,Temperature;

  245.         SET_Resolution();
  246.         I2CStart();       
  247.         if(I2C_Write_Byte(SHT20ADDR&0xfe)==ACK)                  //I2C address + write + ACK
  248.         {       
  249.             if(I2C_Write_Byte(whatdo)==ACK)                      //Command
  250.                 {
  251.                  do
  252.                   {
  253.                         Delay(6);
  254.                         I2CStart();       
  255.                         }while(I2C_Write_Byte(SHT20ADDR|0x01)==NACK);     //I2C address + read        + NACK

  256.                         MSB = I2C_Read_Byte(ACK);                                              //Data(MSB)
  257.                         LSB = I2C_Read_Byte(ACK);                                              //Data(LSB)
  258.                         I2C_Read_Byte(NACK);                                                          //Checksum  + NACK
  259.                         I2CStop();                                                                              //Stop I2C
  260.                         LSB &= 0xfc;                                          //Data (LSB) 的后两位在进行物理计算前前须置‘0’
  261.                         temp = MSB*256 + LSB;                                                          //十六进制转成十进制

  262.                         if (whatdo==((char)0xf5))                                          //No Hold Master Mode,read humidity
  263.                         {       
  264.                           /*-- calculate relative humidity [%RH] --*/
  265.                                 Humidity =(temp*125)/65536-6;                 //公式: RH%= -6 + 125 * SRH/2^16
  266.                                 return Humidity;                              //返回值:humidity
  267.                         }                                                                                                  
  268.                         else                                                                                      //No Hold Master Mode,read temperature
  269.                         {       
  270.                            /*-- calculate temperature [°C] --*/
  271.                                 Temperature = (temp*175.72)/65536-46.85;      //公式:T= -46.85 + 175.72 * ST/2^16
  272.                                 return Temperature;                                      //返回值:temperature
  273.                         }
  274.                  }
  275.           }
  276.         return 0;
  277. }
复制代码
  1. /***************************************************************
  2. *   File name    :  SHT20.h  
  3. *   Description  :  SHT20 Humidity and Temperature Sensors
  4. *     M C U      :  STC89C52RC
  5. *   Compiler     :  Keil uVision V4.00a (C51)
  6. *   Created by   :  dingshidong
  7. *   Copyright    :  Copyright(c) 2012 Wuxi CASILINK Tech.CO.,Ltd   
  8. *   Created data :  2012.08.07  
  9. *   Modified data:        2012.08.10
  10. *   Vision       :  V1.0
  11. *****************************************************************/

  12. /*****************Function Declaration*************************/
  13. /*----define to easier to use-----*/
  14.         #define uchar unsigned char         
  15.         #define uint  unsigned int
  16.         #define ulong unsigned long

  17. /*================================================================
  18. 【  Name  】void Delay(uint t)
  19. 【Function】delay
  20. 【  Notes 】
  21. 【 Author 】dingshidong
  22. 【  Data  】2012.08.07
  23. ================================================================*/
  24. void Delay(uint t);

  25. /*================================================================
  26. 【  Name  】void I2CDelay (uchar t)
  27. 【Function】模拟IIC用的短延时
  28. 【  Notes 】
  29. 【 Author 】dingshidong
  30. 【  Data  】2012.08.07
  31. ================================================================*/
  32. void I2CDelay (uchar t);

  33. /*================================================================
  34. 【  Name  】void I2CInit(void)
  35. 【Function】I2C初始化,空闲状态
  36. 【  Notes 】
  37. 【 Author 】dingshidong
  38. 【  Data  】2012.08.07
  39. ================================================================*/
  40. void I2CInit(void);

  41. /*================================================================
  42. 【  Name  】void I2CStart(void)
  43. 【Function】I2C起始信号
  44. 【  Notes 】SCL、SDA同为高,SDA跳变成低之后,SCL跳变成低
  45. 【 Author 】dingshidong
  46. 【  Data  】2012.08.07
  47. ================================================================*/
  48. void I2CStart(void);

  49. /*================================================================
  50. 【名 称】void I2CStop(void)
  51. 【功 能】I2C停止信号
  52. 【备 注】SCL、SDA同为低,SCL跳变成高之后,SDA跳变成高
  53. 【作 者】dingshidong
  54. 【时 间】2012年8月7日
  55. ================================================================*/
  56. void I2CStop(void);

  57. /*================================================================
  58. 【  Name  】uchar I2C_Write_Byte(uchar WRByte)
  59. 【Function】I2C写一个字节数据,返回ACK或者NACK
  60. 【  Notes 】从高到低,依次发送
  61. 【 Author 】dingshidong
  62. 【  Data  】2012.08.07
  63. ================================================================*/
  64. uchar I2C_Write_Byte(uchar Write_Byte);

  65. /*================================================================
  66. 【  Name  】uchar I2C_Read_Byte(uchar AckValue)
  67. 【Function】I2C读一个字节数据,入口参数用于控制应答状态,ACK或者NACK
  68. 【  Notes 】从高到低,依次接收
  69. 【 Author 】dingshidong
  70. 【  Data  】2012.08.07
  71. ================================================================*/
  72. uchar I2C_Read_Byte(uchar AckValue);


  73. /*================================================================
  74. 【  Name  】void SoftReset(void)
  75. 【Function】SHT20软件复位,主函数中调用
  76. 【  Notes 】从高到低,依次接收
  77. 【 Author 】dingshidong
  78. 【  Data  】2012.08.07
  79. ================================================================*/
  80. void SoftReset(void);

  81. /*================================================================
  82. 【  Name  】void SET_Resolution(void)
  83. 【Function】写寄存器,设置分辨率
  84. 【  Notes 】
  85. 【 Author 】dingshidong
  86. 【  Data  】2012.08.07
  87. ================================================================*/
  88. void SET_Resolution(void);

  89. /*================================================================
  90. 【  Name  】float ReadSht20(char whatdo)
  91. 【Function】读取函数函数
  92. 【  Notes 】
  93. 【 Author 】dingshidong
  94. 【  Data  】2012.08.07
  95. ================================================================*/
  96. float ReadSht20(char whatdo);











复制代码

出0入0汤圆

发表于 2013-5-17 15:30:53 | 显示全部楼层
楼上的编程风格真的很好,很清晰,阅读起来很舒服,

出0入0汤圆

发表于 2013-6-10 10:45:40 | 显示全部楼层
dingshidong214 发表于 2013-5-12 10:35
提供给你做参考吧。。。SHT20.c  和SHT20.h  单片机:STC89C52RC

感谢楼主分享,uchar I2C_Write_Byte(uchar Write_Byte)         //Sendbyte  最后return 那儿写法值得商榷   

出0入0汤圆

发表于 2013-6-10 22:22:14 | 显示全部楼层
LZ遇到过没   湿度大于56%读出来的值就为0了,用的SHT20

出0入0汤圆

发表于 2013-6-10 22:25:47 | 显示全部楼层
mark ......

出0入0汤圆

 楼主| 发表于 2013-6-12 16:25:50 | 显示全部楼层
Zigbee2012 发表于 2013-6-10 22:22
LZ遇到过没   湿度大于56%读出来的值就为0了,用的SHT20

没有

出0入0汤圆

发表于 2013-6-12 19:40:27 | 显示全部楼层
dingshidong214 发表于 2013-6-12 16:25
没有

不解,我对传感器哈口气 , 温度正常  湿度只要超过56%就变为0了  难道我的是国产的

出0入0汤圆

发表于 2013-6-12 20:13:04 | 显示全部楼层
解决了  溢出问题

出0入0汤圆

发表于 2013-9-12 16:44:00 | 显示全部楼层
我现在 也在用sht20   有应答信号  可读出来的数据不对。

出0入0汤圆

发表于 2013-9-12 17:23:36 | 显示全部楼层
dingshidong214 发表于 2013-5-12 10:35
提供给你做参考吧。。。SHT20.c  和SHT20.h  单片机:STC89C52RC

谢谢分享!

出0入0汤圆

发表于 2013-9-13 11:50:26 | 显示全部楼层
我是基于stm32 上的  现在已经调通了。

出0入0汤圆

发表于 2014-6-7 17:23:20 | 显示全部楼层
为什么在 I2C_Write_Byte的时候,一直等不到ACK呢,每次都是NACK,导致无法进入下面的测量。

出0入0汤圆

发表于 2014-6-9 11:00:21 | 显示全部楼层
为什么当准备读取SHT20的时候,SCL就会变得异常,SDA也异常了,如果在读取之前暂停一下,或者单步操作就可以正常呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-7-11 20:16:52 | 显示全部楼层
这个温度负值怎么计算?

出0入0汤圆

发表于 2014-7-23 16:19:27 | 显示全部楼层
楼主在否?

出0入0汤圆

发表于 2014-7-23 16:19:49 | 显示全部楼层
请问SHT20ADD 地址0x80是怎么得出的?

出0入0汤圆

发表于 2014-7-23 16:24:09 | 显示全部楼层
我在手册中查到了 有问题想和楼主交流下可否?

出0入0汤圆

发表于 2014-7-23 23:20:22 | 显示全部楼层
pingguobbmm 发表于 2013-9-13 11:50
我是基于stm32 上的  现在已经调通了。

请问你用的stm32什么型号,方便交流下吗?

出0入0汤圆

发表于 2014-8-14 10:15:41 | 显示全部楼层
mark           

出0入0汤圆

发表于 2014-8-14 19:14:49 | 显示全部楼层
pingguobbmm 发表于 2013-9-13 11:50
我是基于stm32 上的  现在已经调通了。

你好,最近我也买了两个,准备做下测试,也是在STM32下做,能提供下你调通后的测试代码吗?谢谢

出0入0汤圆

发表于 2014-8-14 19:15:20 | 显示全部楼层
pingguobbmm 发表于 2013-9-13 11:50
我是基于stm32 上的  现在已经调通了。

lpdpzc@126.com

出0入0汤圆

发表于 2014-9-9 11:02:07 | 显示全部楼层
pingguobbmm 发表于 2013-9-13 11:50
我是基于stm32 上的  现在已经调通了。

兄弟,同求一份做参考,最近也要开始弄这个,基于stm32的,kmxtye@163.com,谢谢哈

出0入0汤圆

发表于 2014-9-9 11:08:48 | 显示全部楼层
pingguobbmm 发表于 2013-9-13 11:50
我是基于stm32 上的  现在已经调通了。

兄弟,同求一份做参考,最近也要开始弄这个,基于stm32的,kmxtye@163.com,谢谢哈

出0入0汤圆

发表于 2014-9-9 11:54:44 | 显示全部楼层
湿度测量一直是业界难题,据说头发丝比较准点

出0入0汤圆

发表于 2014-9-12 15:50:03 | 显示全部楼层
pingguobbmm 发表于 2013-9-13 11:50
我是基于stm32 上的  现在已经调通了。

你好!STM32的代码可否参考一下,调不同啊。

出0入0汤圆

发表于 2014-9-16 10:54:48 | 显示全部楼层
学习下,调通的求分享下

出0入0汤圆

 楼主| 发表于 2014-9-16 12:13:37 | 显示全部楼层
本帖最后由 dingshidong214 于 2014-9-16 12:15 编辑
wgmhn 发表于 2014-9-16 10:54
学习下,调通的求分享下


17楼
顺便把SHT1X和SHT21官方提供参考代码传上来

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-9-17 11:16:13 | 显示全部楼层
谢谢分享,正好用上

出0入0汤圆

发表于 2014-9-22 10:45:58 | 显示全部楼层
谢谢分享,收藏备用!

出0入0汤圆

发表于 2014-11-4 12:14:17 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-12-3 11:27:50 | 显示全部楼层
sht20是3.6V的,怎么跟5V的单片机连接?

出0入0汤圆

发表于 2014-12-16 09:45:54 | 显示全部楼层
从SHT10追到SHT20,还是大脑兄给力啊

出0入0汤圆

 楼主| 发表于 2014-12-17 09:43:45 | 显示全部楼层
宁城蛋小疼 发表于 2014-12-16 09:45
从SHT10追到SHT20,还是大脑兄给力啊

SHT20比SHT10价格便宜

出0入53汤圆

发表于 2014-12-20 08:40:52 | 显示全部楼层
duzm 发表于 2014-12-3 11:27
sht20是3.6V的,怎么跟5V的单片机连接?

SHT20供电采用3.3v  两根数据线上拉电阻接3.3v

出0入0汤圆

发表于 2014-12-20 11:05:57 | 显示全部楼层
zhcj66 发表于 2014-12-20 08:40
SHT20供电采用3.3v  两根数据线上拉电阻接3.3v

还用sht20?现在都out了,现在都该成了silabs,si7021.价格便宜多了。而且精度还高

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入53汤圆

发表于 2014-12-20 13:12:47 | 显示全部楼层
chiefdh 发表于 2014-12-20 11:05
还用sht20?现在都out了,现在都该成了silabs,si7021.价格便宜多了。而且精度还高
...

手头里有5pcs样片,不用可惜 ,用了贵,你说的芯片暂无样片

出50入4汤圆

发表于 2014-12-20 13:28:13 | 显示全部楼层
已经买不到SHT10了,除非淘宝,

他们不做小订单了,2000个起订。。

出0入53汤圆

发表于 2014-12-20 13:30:37 | 显示全部楼层
zhuyi25762 发表于 2014-12-20 13:28
已经买不到SHT10了,除非淘宝,

他们不做小订单了,2000个起订。。

那SHT20呢  批量什么价格

出0入0汤圆

发表于 2014-12-20 17:12:22 | 显示全部楼层
zhcj66 发表于 2014-12-20 13:12
手头里有5pcs样片,不用可惜 ,用了贵,你说的芯片暂无样片

si7021,差不多1个多美刀吧,含税7块多吧,sht10淘宝上面卖20.估计批量也到10多多块,关键是sht10没有si7021性能参数好

出50入4汤圆

发表于 2014-12-21 11:55:09 | 显示全部楼层
本帖最后由 zhuyi25762 于 2014-12-21 12:11 编辑
zhcj66 发表于 2014-12-20 13:30
那SHT20呢  批量什么价格


不清楚,反正我们是彻底放弃用盛世瑞恩的传感器了

盛世瑞恩据说和宝马合作,这个传感器要大量给宝马供货,不做小客户了。。已经买不到了

我们是改用霍尼韦尔的了  。。自己玩玩就行,做产品就先考滤下别的,要不,东西是可以量产了,但东西买不到了

出50入4汤圆

发表于 2014-12-21 11:58:11 | 显示全部楼层
chiefdh 发表于 2014-12-20 17:12
si7021,差不多1个多美刀吧,含税7块多吧,sht10淘宝上面卖20.估计批量也到10多多块,关键是sht10没有si70 ...

我觉的这个东西不能单看暂时的数据

要经长时间的考验。几年后,看下它能飘多少。精度又是多少

SHT 卖这么贵,而且还这么大的市场,这么多人用,应该是有它的优势的

出0入0汤圆

发表于 2015-5-8 19:57:45 | 显示全部楼层
本帖最后由 chun_hua82 于 2015-5-8 22:55 编辑

各位师傅帮我看看 这代码哪里有问题,完全用的楼主的代码,就是读不出SHT20温度湿度,if(I2C_Write_Byte(SHT20ADDR&0xfe)==ACK)把这段屏蔽掉就能读出数据但是数据不对实际温度是20几度读出的温度有50多度了,不知道哪里出了问题
  1.          #include<STC89C5.h>         //12M
  2. #include <intrins.h>
  3. typedef unsigned char uint8;  
  4. typedef signed char fuint8;
  5. typedef unsigned int uint16;
  6. typedef signed int fuint16;

  7. #define uchar unsigned char         
  8.         #define uint  unsigned int
  9.         #define ulong unsigned long

  10. #define TC  0xF3 //温度测量
  11. #define SH  0xF5 //湿度测量
  12. #define WR        0xE6 //写寄存器
  13. #define RD  0xE7 //读寄存器
  14. #define RST 0xFe //软复位

  15. /*================================================================
  16. 【  Name  】
  17. 【Function】SHT20的I2C地址
  18. 【  Notes 】
  19. 【 Author 】dingshidong
  20. 【  Data  】2012.08.07
  21. ================================================================*/
  22. #define SHT20ADDR 0x80
  23. /*================================================================
  24. 【  Name  】
  25. 【Function】应答位电平定义
  26. 【  Notes 】
  27. 【 Author 】dingshidong
  28. 【  Data  】2012.08.07
  29. ================================================================*/
  30. #define ACK            0            //应答信号
  31. #define NACK        1             //非应答信号
  32.                  
  33. #define led_duan P0                //数码管段选//
  34. #define led_wei P2                //数码管位选//



  35. fuint16 value;
  36. fuint16 ys;




  37. bit dian = 0;

  38. bit ad_ok = 0;

  39. sbit        wei_1 = P2^0;
  40. sbit        wei_2 = P2^1;
  41. sbit        wei_3 = P2^2;
  42. sbit        wei_4 = P2^3;
  43. sbit        wei_5 = P2^4;
  44. sbit        wei_6 = P2^5;
  45. sbit        wei_7 = P2^6;

  46. sbit led_dian = P0^5;

  47. sbit        SDA = P3^4;
  48. sbit        SCL =  P3^3;

  49. uint8 xsjs = 0;
  50. uint16 pca_s=0;

  51. uint16 wendu,shidu;

  52. uint8 xszc[7];        //显示缓冲区
  53. uint8 code duan_ma[] = {
  54.         0x28,/*0*/
  55.         0x7E,/*1*/
  56.         0xA2,/*2*/
  57.         0x62,/*3*/
  58.         0x74,/*4*/
  59.         0x61,/*5*/
  60.         0x21,/*6*/
  61.         0x7A,/*7*/
  62.         0x20,/*8*/
  63.         0x60,/*9*/
  64. };

  65. uint8 code wei_ma [] = {0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD};


  66. /*================================================================
  67. 【  Name  】void Delay(uint t)
  68. 【Function】delay Nms
  69. 【  Notes 】
  70. 【 Author 】dingshidong
  71. 【  Data  】2012.08.07
  72. ================================================================*/
  73. void Delay(uint t)
  74. {
  75.         uchar i;
  76.         while(t--)
  77.         {
  78.                 for(i=0;i<200;i++);
  79.         }                                          
  80. }
  81. /*------------------------------------------------------------*/
  82. /**********************Simulation I2C Function*****************/
  83. /*------------------------------------------------------------*/

  84. /*================================================================
  85. 【  Name  】void I2CDelay (uchar t)
  86. 【Function】模拟IIC用的短延时 us
  87. 【  Notes 】
  88. 【 Author 】dingshidong
  89. 【  Data  】2012.08.07
  90. ================================================================*/
  91. void I2CDelay (uchar t)         
  92. {
  93.         while(t--);
  94. }

  95. /*================================================================
  96. 【  Name  】void I2CInit(void)
  97. 【Function】I2C初始化,空闲状态
  98. 【  Notes 】
  99. 【 Author 】dingshidong
  100. 【  Data  】2012.08.07
  101. ================================================================*/
  102. void I2CInit(void)
  103. {
  104.         SDA = 1;
  105.         I2CDelay(1);
  106.         SCL = 1;
  107.         I2CDelay(1);
  108. }

  109. /*================================================================
  110. 【  Name  】void I2CStart(void)
  111. 【Function】I2C起始信号
  112. 【  Notes 】SCL、SDA同为高,SDA跳变成低之后,SCL跳变成低         
  113. 【 Author 】dingshidong                                                                                                                        
  114. 【  Data  】2012.08.07
  115. ================================================================*/
  116. void I2CStart(void)
  117. {        
  118.           SDA = 1;                            //发送起始条件的数据信号--ZLG
  119.           SCL = 1;
  120.           I2CDelay(5);                    //起始条件建立时间大于4.7us,延时--ZLG
  121.           SDA = 0;                            //发送起始信号-ZLG
  122.         I2CDelay(5);                    //起始条件锁定时间大于4μs--ZLG
  123.           SCL = 0;                            //钳住I2C总线,准备发送或接收数据--ZLG
  124.         I2CDelay(5);         
  125. }

  126. /*================================================================
  127. 【  Name  】void I2CStop(void)
  128. 【Function】I2C停止信号
  129. 【  Notes 】SCL、SDA同为低,SCL跳变成高之后,SDA跳变成高           
  130. 【 Author 】dingshidong
  131. 【  Data  】2012.08.07
  132. ================================================================*/
  133. void I2CStop(void)
  134. {        
  135.           SDA = 0;                        //发送结束条件的数据信号--ZLG
  136.           SCL = 0;
  137.         I2CDelay(5);
  138.           SCL = 1;                        //发送结束条件的时钟信号--ZLG
  139.           I2CDelay(5);                //结束条件建立时间大于4μs--ZLG
  140.           SDA = 1;                        //发送I2C总线结束信号--ZLG
  141.           I2CDelay(5);
  142. }

  143. /*================================================================
  144. 【  Name  】uchar I2C_Write_Byte(uchar WRByte)
  145. 【Function】I2C写一个字节数据,返回ACK或者NACK
  146. 【  Notes 】从高到低,依次发送
  147. 【 Author 】dingshidong
  148. 【  Data  】2012.08.07
  149. ================================================================*/
  150. uchar I2C_Write_Byte(uchar Write_Byte)         //Sendbyte
  151. {
  152.         uchar i;      
  153.         for(i=0;i<8;i++)              //要传送的数据长度为8位--ZLG
  154.         {         
  155.                 if(Write_Byte&0x80)              //判断发送位--ZLG
  156.                 {
  157.                         SDA = 1;        
  158.                 }
  159.                 else
  160.                 {
  161.                         SDA = 0;
  162.                 }
  163.                 I2CDelay(1);               
  164.                 SCL=1;                                  //输出SDA稳定后,拉高SCL给出上升沿,从机检测到后进行数据采样      
  165.                 I2CDelay(5);                        //保证时钟高电平周期大于4μs--ZLG
  166.                 SCL=0;
  167.                 I2CDelay(1);
  168.                 Write_Byte <<= 1;
  169.         }
  170.         I2CDelay(4);
  171.         SDA = 1;                                  //8位发送完后释放数据线,准备接收应答位-ZLG
  172.     SCL = 1;                      //MCU告知SHT2X数据发送完毕,等待从机的应答信号        
  173.         I2CDelay(5);                  
  174.         /*以下是判断I2C总线接收应到应答信号是ACK还是NACK*/
  175.         if(SDA==1)                                   //SDA为高,收到NACK
  176.                 return NACK;        
  177.         else                                           //SDA为低,收到ACK               
  178.                 return ACK;        
  179.         SCL=0;
  180.         I2CDelay(15);   
  181. }

  182. /*================================================================
  183. 【  Name  】uchar I2C_Read_Byte(uchar AckValue)
  184. 【Function】I2C读一个字节数据,入口参数用于控制应答状态,ACK或者NACK
  185. 【  Notes 】从高到低,依次接收
  186. 【 Author 】dingshidong
  187. 【  Data  】2012.08.07
  188. ================================================================*/
  189. uchar I2C_Read_Byte(uchar AckValue)//receivebyte
  190. {
  191.         uchar i,RDByte=0;
  192.         SCL=0;                                                  //置时钟线为低,准备接收数据位--ZLG
  193.         SDA = 1;                                  //释放总线,置数据线为输入方式--ZLG        
  194.         for (i=0;i<8;i++)
  195.         {        
  196.                 SCL = 1;                          //SCL高电平期间,采集SDA信号,并作为有效数据 //置时钟线为高使数据线上数据有效--ZLG
  197.                 I2CDelay(2);
  198.                 RDByte <<= 1;                  //移位
  199.                 if(SDA==1)                           //采样获取数据
  200.                 {
  201.                         RDByte |= 0x01;
  202.                 }
  203.                 else
  204.                 {
  205.                         RDByte &= 0xfe;
  206.                 }
  207.                 I2CDelay(1);
  208.                 SCL = 0;                             //下降沿,从机给出下一位值
  209.                 I2CDelay(6);
  210.         }   
  211.         /*以下是I2C总线发送应答信号ACK或者NACK*/
  212.         SDA = AckValue;                      //应答状态        
  213.         I2CDelay(3);
  214.         SCL = 1;                        
  215.           I2CDelay(5);                  //时钟低电平周期大于4μs--ZLG
  216.           SCL = 0;                                  //清时钟线,钳住I2C总线以便继续接收--ZLG               
  217.           I2CDelay(15);
  218.         //SDA = 1;        
  219.         return RDByte;
  220. }

  221. /*================================================================
  222. 【  Name  】void SoftReset(void)
  223. 【Function】SHT20软件复位,主函数中调用
  224. 【  Notes 】从高到低,依次接收
  225. 【 Author 】dingshidong
  226. 【  Data  】2012.08.07
  227. ================================================================*/
  228. void SoftReset(void)                    
  229. {
  230.         I2CInit();                       //I2C initialize
  231.         I2CStart();                      //start I2C
  232.         I2C_Write_Byte(SHT20ADDR&0xfe);  //I2C address + write
  233.         I2C_Write_Byte(0xfe);                         //soft reset
  234.         I2CStop();                       //stop I2C
  235. }

  236. /*================================================================
  237. 【  Name  】void SET_Resolution(void)
  238. 【Function】写寄存器,设置分辨率
  239. 【  Notes 】
  240. 【 Author 】dingshidong
  241. 【  Data  】2012.08.07
  242. ================================================================*/
  243. void SET_Resolution(void)                    
  244. {
  245.   I2CStart();                                                                         //Start I2C
  246.   if(I2C_Write_Byte(SHT20ADDR&0xfe)==ACK)       //I2C address + write + ACK
  247.   {
  248.    if(I2C_Write_Byte(0xe6)==ACK)                            //写用户寄存器
  249.     {  
  250.             if(I2C_Write_Byte(0x83)==ACK);                            //设置分辨率   11bit RH% 测量时间:12ms(typ.) & 11bit T℃ 测量时间:9ms(typ.)
  251.     }
  252.   }
  253.    I2CStop();                                   //Stop I2C         
  254. }

  255. /*================================================================
  256. 【  Name  】float ReadSht20(char whatdo)
  257. 【Function】非主机模式,读取函数函数
  258. 【  Notes 】
  259. 【 Author 】dingshidong
  260. 【  Data  】2012.08.07
  261. ================================================================*/
  262. float ReadSht20(char whatdo)
  263. {
  264.         float temp;
  265.         uchar MSB,LSB;
  266.         float Humidity,Temperature;

  267.         SET_Resolution();
  268.         I2CStart();        
  269. //        if(I2C_Write_Byte(SHT20ADDR&0xfe)==ACK)                  //I2C address + write + ACK 这个函数屏蔽掉才读出数据但是数据好像不对,读出的温度50多度环境温度只有20几度
  270.         {        
  271.             if(I2C_Write_Byte(whatdo)==ACK)                      //Command
  272.                 {
  273.                  do
  274.                   {
  275.                         Delay(6);
  276.                         I2CStart();        
  277.                         }while(I2C_Write_Byte(SHT20ADDR|0x01)==NACK);     //I2C address + read        + NACK

  278.                         MSB = I2C_Read_Byte(ACK);                                              //Data(MSB)
  279.                         LSB = I2C_Read_Byte(ACK);                                              //Data(LSB)
  280.                         I2C_Read_Byte(NACK);                                                          //Checksum  + NACK
  281.                         I2CStop();                                                                              //Stop I2C
  282.                         LSB &= 0xfc;                                          //Data (LSB) 的后两位在进行物理计算前前须置‘0’
  283.                         temp = MSB*256 + LSB;                                                          //十六进制转成十进制

  284.                         if (whatdo==((char)0xf5))                                          //No Hold Master Mode,read humidity
  285.                         {        
  286.                           /*-- calculate relative humidity [%RH] --*/
  287.                                 Humidity =(temp*125)/65536-6;                 //公式: RH%= -6 + 125 * SRH/2^16
  288.                                 return Humidity;                              //返回值:humidity
  289.                         }                                                                                                  
  290.                         else                                                                                      //No Hold Master Mode,read temperature
  291.                         {        
  292.                            /*-- calculate temperature [°C] --*/
  293.                                 Temperature = (temp*175.72)/65536-46.85;      //公式:T= -46.85 + 175.72 * ST/2^16
  294.                                 return Temperature;                                      //返回值:temperature
  295.                         }
  296.                  }
  297.           }
  298.         return 0;
  299. }

  300. //=========================================显示数据分解===========================================

  301. void pv3_3_DATA(uint16 x)
  302. {
  303.         uint8 a,b,c,d,e;
  304.         a = x/10000;
  305.         b = x%10000/1000;
  306.         c = x%1000/100;
  307.         d = x%100/10;
  308.         e = x%10;
  309.         xszc[2]=a;
  310.         xszc[3]=b;
  311.         xszc[4]=c;
  312.         xszc[5]=d;               
  313.         xszc[6]=e;       
  314. }         

  315. //=====================================================================================
  316. void main(void)
  317. {
  318.         TMOD = 0x01;

  319.         TH0 = 0xF6;
  320.         TL0 = 0x3C;

  321.        

  322.         TR0 = 1;
  323.         ET0 = 1;

  324.         EA = 1;

  325.         while(1)
  326.         {

  327.                 if(ad_ok == 1)
  328.                 {
  329.                 //                EA = 0;
  330.                                 shidu=(ReadSht20(TC)*100);//湿度
  331.                 //                EA = 1;
  332.                         ad_ok = 0;       
  333.                 }

  334.                 pv3_3_DATA(shidu);
  335.                
  336.         }                       
  337. }

  338. //================================================================================================
  339. void timer0(void) interrupt 1 using 2//
  340. {       
  341.         TH0 = 0xF6;
  342.         TL0 = 0x3C;
  343.         pca_s++;
  344.         if(pca_s == 200)
  345.         {
  346.                 ad_ok = 1;
  347.                 pca_s = 0;               
  348.         }
  349.        
  350.         led_wei = 0xFF;;       
  351.         switch(xsjs)
  352.         {
  353.                 case 0: led_duan = duan_ma[xszc[xsjs]];wei_1=0;break;
  354.                 case 1: led_duan = duan_ma[xszc[xsjs]];wei_2=0;break;
  355.                 case 2: led_duan = duan_ma[xszc[xsjs]];wei_3=0;break;               
  356.                 case 3: led_duan = duan_ma[xszc[xsjs]];wei_4=0;break;
  357.                 case 4: led_duan = duan_ma[xszc[xsjs]];led_dian=dian;wei_5=0;break;
  358.                 case 5: led_duan = duan_ma[xszc[xsjs]];wei_6=0;break;
  359.                 case 6: led_duan = duan_ma[xszc[xsjs]];wei_7=0;
  360.         }

  361.         xsjs++;
  362.         if(xsjs == 7)xsjs = 0;
  363. }                                       
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-10-13 15:31:36 | 显示全部楼层
怎么设置分辨率

出0入0汤圆

发表于 2015-10-13 16:54:35 | 显示全部楼层
这类 sht10 好贵啊! http://www.szlcsc.com/product/details_24238.html

出0入0汤圆

发表于 2015-12-1 16:34:45 | 显示全部楼层
Zigbee2012 发表于 2013-6-12 20:13
解决了  溢出问题

兄弟,我想问问你是怎么解决溢出的问题的,我对传感器哈气也变成了全部都是0。还有温度一直在波动,不是正常的温度,波动范围很大。

出0入0汤圆

发表于 2015-12-2 09:39:15 | 显示全部楼层
最近刚接触到SHT20的实验,请教楼主共享一下代码学习一番.另外他的代码可以跟SHT10的通用吗(除了那些读取命令)?谢谢 RUIXS@MSN.COM

出0入0汤圆

发表于 2016-4-20 14:52:59 | 显示全部楼层
dingshidong214 发表于 2013-5-12 10:35
提供给你做参考吧。。。SHT20.c  和SHT20.h  单片机:STC89C52RC

多谢前辈

出0入0汤圆

发表于 2016-6-21 17:15:38 | 显示全部楼层
感谢前辈分享,测试可用,但是第155-165行写数据后等待ACK那里要改一下

出0入0汤圆

发表于 2018-5-29 15:55:32 | 显示全部楼层
dolphintt920 发表于 2016-6-21 17:15
感谢前辈分享,测试可用,但是第155-165行写数据后等待ACK那里要改一下

你好,我想请教一下你说的等待ACK那里应该要怎么改?

出0入0汤圆

发表于 2018-6-6 10:49:52 | 显示全部楼层
电子小白 发表于 2018-5-29 15:55
你好,我想请教一下你说的等待ACK那里应该要怎么改?

确实记不清了···
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-28 13:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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