久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5177|回復: 2
打印 上一主題 下一主題
收起左側

[已解決]HX711在STM32F4里面一直顯示83688608

[復制鏈接]
跳轉到指定樓層
樓主
50黑幣
在論壇里面參考了很多人的HX711模塊,可以知道,SCK引腳要設置為推挽輸出,50MHZ,DOUT設置為浮空輸入,50MHZ。初始化引腳之后是讀取轉換函數,這個沒什么好說的,看著改就好。讓我疑惑的是,我自認為程序寫的應該沒問題,但是串口一直顯示83688608,我在上面放置物品,也不見重量發生變化。我看了論壇所有HX711的帖子,發現論壇很多大佬都碰到這個問題了,但是解決辦法很多人都不說,有的說引腳接錯了,但是我把E+E-引腳接反,DT,SCK都接反來試驗過,還是不行,最后又改回原來的。我在探索板上給HX711提供5V,GND,實驗過改為3.3V,GND
  1. //HX711
  2. #include "HX711.h"
  3. #include "delay.h"
  4. #include "stm32f4xx.h"

  5. void AD_init(void)
  6. {
  7.                 GPIO_InitTypeDef GPIO_InitStructure;

  8.         RCC_APB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);

  9.         GPIO_InitStructure.GPIO_Pin = CLK ;
  10.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  11.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//CLKòy½Å¶¨òåíÆíìêä3ö
  12.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  13.         //GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//éÏà-
  14.         GPIO_Init(ADIO,&GPIO_InitStructure);

  15.         GPIO_InitStructure.GPIO_Pin = DATA;//êy¾Y
  16.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  17.         //GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//éÏà-
  18.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; //DATAòy½Å¶¨ò帡¿Õêäèë
  19.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  20.         GPIO_Init(ADIO,&GPIO_InitStructure);                 
  21. }


  22. //****************************************************
  23. //3ÆÖØ1
  24. //****************************************************
  25. unsigned long ReadAD(void)  //¶áADD¾Æ¬êä3öμÄêy¾Y¡£
  26. {
  27.         unsigned long count ;
  28.         unsigned char i;
  29.   GPIO_SetBits(ADIO,DATA);        //DOUT=1;
  30.         GPIO_ResetBits(ADIO,CLK);        //CLK=0
  31.   count=0;         
  32.   while(GPIO_ReadInputDataBit(ADIO,DATA)); //μè′yDOUTμèóú0
  33.         delay_us(1);
  34.   for(i=0;i<24;i++)
  35.         {
  36.                   GPIO_SetBits(ADIO,CLK);                        //CLK=1               
  37.                   count=count<<1;
  38.                         delay_us(1);
  39.                         GPIO_ResetBits(ADIO,CLK);                  //CLK=0
  40.                         if(GPIO_ReadInputDataBit(ADIO,DATA))                //èç1ûDOUTμèóú1                        
  41.                                         count++;
  42.                                         delay_us(1);
  43.         }
  44.          GPIO_SetBits(ADIO,CLK);        //CLK =1
  45.   count=count^0x800000;
  46.         delay_us(1);
  47.         GPIO_ResetBits(ADIO,CLK);//CLK =0
  48.   delay_us(1);
  49.         return(count);                 
  50. }


  51. long double filter(void)  //»¬¶ˉ¾ùÖμÂË2¨·¨μÄoˉêy¡£   
  52. {
  53.         unsigned long max=0,min=0,SUM,BUF[12],Average;
  54.         int i=0;        
  55. for(i=0;i<12;i++)
  56.         {
  57.                 BUF[i]=ReadAD();
  58.         //printf("%ld\r\n",BUF[i]);
  59.                 if(i==0)
  60.                 {
  61.                         max=BUF[0];
  62.                         min=BUF[0];
  63.                 }
  64.                 if(i>0)
  65.                 {
  66.                         if(BUF[i]>max) max=BUF[i];
  67.                         if(BUF[i]<min) min=BUF[i];
  68.                 }
  69.         }
  70.         for(i=0;i<12;i++)
  71.         {
  72.                 if(!(BUF[i]==max||BUF[i]==min))
  73.                 {
  74.                         SUM=SUM+BUF[i];        
  75.                 }
  76.         }
  77.         Average=SUM/(12-2);
  78.         return Average;
  79.         
  80. }

  81. //主函數
  82. #include "stm32f4xx.h"
  83. #include "usart.h"
  84. #include "delay.h"
  85. #include "main.h"
  86. #include "HX711.h"


  87.   

  88. int main(void)
  89. {
  90.          unsigned long t=0;

  91.         delay_init(168);
  92.         
  93.         uart_init(9600);
  94.         AD_init();        
  95.         
  96.         while(1)
  97.                 {
  98.                         delay_ms(500);
  99.                         t = ReadAD();
  100.                         printf("t1=%ld\r\n",t);                                
  101.                         delay_ms(500);
  102.                         t = filter();
  103.                         printf("t2=%ld\r\n",t);               

  104. }
  105. }

復制代碼

,還是不行。所以請教諸位,看一下我的程序跟原理圖,提出解決辦法。給個思路或靈感也行啊

QQ截圖20180404161045.png (44.73 KB, 下載次數: 109)

QQ截圖20180404161045.png

微信圖片_20180408121941.jpg (225.93 KB, 下載次數: 101)

微信圖片_20180408121941.jpg

評分

參與人數 1黑幣 +90 收起 理由
admin + 90 回帖助人的獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:214628 發表于 2018-4-9 15:51 | 只看該作者
問題已解決!好吧其實出現這個問題很簡單,我在這里直接說一下,免得很多人都不知道這個解決方法。STM32開發板跟單片機開發板有一點不一樣,你在單片機開發板上,隨便哪個IO口都可以作為獨立的IO口來用,但是在探索者開發板上不行,因為他的IO口都被占用了,你如果用不是開發板上的外設,而是自己的外設去搶占IO口,就會出現操作無反應的狀況。我把STM32F4開發指南看了一遍才在1.2.3章節找到IO口分配表,找到了可以獨立的IO口,然后重新分配了IO口引腳,然后程序下載燒錄,運行完美,沒有一點問題。
所以大家記住,在使用相關的開發板時,一定要注意IO口的引腳分配問題。
回復

使用道具 舉報

板凳
ID:1142877 發表于 2025-1-10 16:22 | 只看該作者
你好樓主,這個io接口用cubemx設置好了input和output了,還要去考慮可以獨立的IO口嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久国产精品 | 乳色吐息在线观看 | 最新免费av网站 | 久久国产亚洲 | 亚洲天堂精品一区 | 国产精品一区二区三区久久 | 国产精品久久影院 | 天天综合国产 | 欧美最猛黑人xxxx黑人 | 日韩一区中文字幕 | 欧美精品片 | 久久久久久中文字幕 | 毛片大全| 久久久久久久久久久一区二区 | 亚洲精品乱码久久久久久蜜桃 | 无码国模国产在线观看 | 久久久久久久久一区 | 精品一区二区三区四区五区 | 亚洲一区二区三区高清 | 成人精品国产一区二区4080 | 91免费看片 | 日本久久精品视频 | 久久久久久国产精品 | 中文字幕一区二区三区精彩视频 | 色www精品视频在线观看 | 成人免费在线播放视频 | 亚洲一区在线播放 | 亚洲欧美国产精品久久 | 无码日韩精品一区二区免费 | 中文一区二区 | a免费在线 | 免费99视频 | 人人人人干 | 成人亚洲性情网站www在线观看 | 免费性视频 | 亚洲精品乱码久久久久久蜜桃91 | 一区二区三区国产在线观看 | 99精品一级欧美片免费播放 | 91精品国产91久久久久久三级 | 久久国产精品一区二区三区 | 亚洲欧洲精品成人久久奇米网 |