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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
12
返回列表 發新帖
樓主: wolfinn
打印 上一主題 下一主題
收起左側

單片機C語言程序奇怪的問題,我沒有考慮到什么?

[復制鏈接]
41#
ID:776619 發表于 2022-6-4 15:35 | 只看該作者
我之所以對我的數據源不懷疑,是用頭腦跟著運算到那條語句的當下那一瞬間,是很確定的情況,第一,我雖開著串口中斷,但沒接線。別的中斷在那當下也沒有發生,要不我會懷疑什么中斷堆棧之類的問題。
回復

使用道具 舉報

42#
ID:824490 發表于 2022-6-4 16:13 | 只看該作者
其實一開始就是邏輯的問題:
1、開機讀取1302的分鐘值,存為變量比如“”
2、過一段時間(這個時間影響定時的實時性,最多不要超1分鐘),如2秒一次,讀1302分鐘值,與“START”對比,相同則跳過,不同則計時變量如“MIN” +1,同時把1032分鐘值賦予“START”。
3、"MIN">=5,則繼電器動作切換。
要什么取模轉換?要什么串口打印?都不用管它。。只不過多加了個變量而已。
回復

使用道具 舉報

43#
ID:776619 發表于 2022-6-4 16:23 | 只看該作者
zhxiufan 發表于 2022-6-4 14:38
關鍵的問題是當,分值大于49時,被賦予了值為0,當然就會出問題了。所以要分別處理大于49和小于49的情況。

不用分別處理,經模轉換后可以排除影響。
回復

使用道具 舉報

44#
ID:824490 發表于 2022-6-4 20:06 | 只看該作者

...............;
unsigned char gds1302_time[7];                               //1302時鐘數組
............;

u8  newmin;
u8  min_count;

sbit  wifi_power=P1^5;                                         //繼電器
..........;
main()
{
.........;
.........;
ds1302_read_time();                                                       //讀入1302時間值,放數組gds1302_time里,[1]里的是分鐘。
newmin=gds1302_time[1]; //分鐘轉為數值,此變量為開機分鐘初始值
min_count=0;
wifi_power=0;                                                                //打開繼電器,wifi通電。
...................;
...................;
while (1) //如果這個大循環時間超長(大于1分鐘,則需另開一個定時器,用中斷法)
    {
      ..........;
      .........;
     if(wifi_power=0)  //wifi通電時,才讀入時間值,防止一直讀取分鐘數

       ds1302_read_time();

        if (gds1302_time[1]!=newmin) //比較分鐘值
                {                                                                              
                 min_count++;  //不同則表示已改變分鐘數,計數+1

                 newmin=gds1302_time[1]; //同時改變已存的分鐘值

                 }

    if (min_count>=5) wifi_power=1;      //計數溢出(超5分鐘)則wifi斷電
                                                         
       }         
     ..................;
     .................;
     }

}
回復

使用道具 舉報

45#
ID:883242 發表于 2022-6-4 23:16 | 只看該作者
傳說中三個臭皮匠賽過諸葛亮,但是這個帖子告訴我們一個臭皮匠能氣死三個諸葛亮。
回復

使用道具 舉報

46#
ID:776619 發表于 2022-6-5 00:33 | 只看該作者
名字不是重點 發表于 2022-6-4 16:13
其實一開始就是邏輯的問題:
1、開機讀取1302的分鐘值,存為變量比如“”
2、過一段時間(這個時間影響定 ...

是,你這方法同上一位高手的異曲同工,只是變了種寫法。今天傍晚前我差不多也想到了一致的內容,剛看你的回復。用串口是另一朋友為了讓我排除故障提出來的一個方法。但我一直沒有進行。是因為我左邊值一開始就是一個無類型的值。串口輸出要怎么處理,要說它是64位的值我都可以轉換打印得出來。不同右邊初值是一個字任型的變量。而我是無法去打印出那倆個系統為了運行>比較而自動轉換的值的。你們的算法都很妙。其實現在我把左值在判斷前先把它賦給一個確定類型的變量可能就好了。現在看來在編程當中不能有一個不確定的東西。我還沒有試。我是一切都懷疑,而不是那朋友所說的質疑我的數據源,好象什么刺痛我的神經。為的是看起來可以的東西為什么不行。防止下回再犯同樣的錯誤。雖然說算法有點笨和慢。但能用的話同樣能解決問題的。
回復

使用道具 舉報

47#
ID:776619 發表于 2022-6-5 00:40 | 只看該作者
以前我調試程序是點亮一盞燈來看看程序走到哪里,有沒有進條件語句。現在看來打印輸出更方便。可以根據內容設無數個點。
回復

使用道具 舉報

48#
ID:161164 發表于 2022-6-5 00:56 | 只看該作者
wolfinn 發表于 2022-6-4 13:29
好吧,謝謝你,左邊是一個現算值,右邊一個算好的變量值,數據亂入?不想吵了,謝謝你,浪費了你的時間。

如你所說左邊是現算值,右邊是算好的變量值
if(A>B)要成立必定是A的值大于B
既然B是固定值
必然是A在一分多鐘內突然多于B(如255)
那么有沒有一個可能
就是ds1302_read_time();這函數在讀取分鐘值時受到中斷或其他因素干擾
令讀到的值產生錯誤(如255)
于是if(A>B)就成立了
188610329的if((gds1302_time[1] < 0x60) && ((gds1302_time[1] & 0x0f)< 0x0A))
就是為了過濾這種掉數據亂入
而串口輸出更可以得知A的值甚至A的源數據gds1302_time[1]的值
從你的回覆得知你還沒有試過打印出來
而是認定了過了一分多鐘gds1302_time[1]的值只會+1或+2

還有就是為什么不把所有代碼都貼上來?
而是只"節錄"你覺得有問題的代碼片段?
在你之前的三個發問貼中
第一個貼子沒有代碼,范范而談,結果是定時器0初始化語句放WHILE(1)大循環里
第二個貼子有代碼,但原來是用錯晶振
第三個貼子有"節錄"代碼,結果是函數宣告打少了*號
在第一個貼子中更說出"不放程序上來不是讓人來解決問題的。那樣我覺得學不到東西。對別人也是種折磨。"這名句
敢問你在第一個貼子里學到了什么?
回復

使用道具 舉報

49#
ID:776619 發表于 2022-6-5 00:58 | 只看該作者
名字不是重點 發表于 2022-6-4 16:13
其實一開始就是邏輯的問題:
1、開機讀取1302的分鐘值,存為變量比如“”
2、過一段時間(這個時間影響定 ...

又想了一下,你這方法雖說可以,但是沒有開關量,因為這只要開機運行一次,還得加一開關量。
回復

使用道具 舉報

50#
ID:776619 發表于 2022-6-5 06:34 | 只看該作者
lkc8210 發表于 2022-6-5 00:56
如你所說左邊是現算值,右邊是算好的變量值
if(A>B)要成立必定是A的值大于B
既然B是固定值

分析得有道理,別的代碼沒必要放出來。
我誤解了,仔細看你所的加條語句是解決亂入問題的。
你說的我的第一貼我說不貼代碼,本來我是把貼子放51單片機里的,沒把它放24小時里。是管理員把它挪來。只是想所我遇到過這奇怪的現象。第一貼可以說是學到了寫代碼在什么位置都會有影響。
第二貼是沒想到晶振對串口影響那么大,板載的是多少的沒標志,后來在別的地方找了個對上。
三貼可以說是為了解決問題臨時在程序里打的*,而在函數說明里沒打。至今不懂指針。那是用指針亂打最后把問題解決了。可以說我所有的貼子本來都只是個標題就行,只說自己遇到個現象。
還有這貼子也經管理員改過了,本來我是先寫代碼進來,后才說明 現象的,是管理員把它換過來先說現象,后還補了句代碼如下的。可以說我是多么的不嚴謹。
代碼亂入,不是不會有,因為我這程序里 有個數組用得比較大,處理串口程序時12864第二行就會亂閃。處理完就不閃了。之所以沒考慮同樣是串口程序也同樣這問題,是因為串口沒線,Wifi模塊沒用,,僅接個接觸器。
回復

使用道具 舉報

51#
ID:776619 發表于 2022-6-5 06:52 | 只看該作者
lkc8210 發表于 2022-6-5 00:56
如你所說左邊是現算值,右邊是算好的變量值
if(A>B)要成立必定是A的值大于B
既然B是固定值

"
wolfinn 發表于 2022-6-4 13:29
好吧,謝謝你,左邊是一個現算值,右邊一個算好的變量值,數據亂入?不想吵了,謝謝你,浪費了你的時間。

如你所說左邊是現算值,右邊是算好的變量值
if(A>B)要成立必定是A的值大于B
既然B是固定值
必然是A在一分多鐘內突然多于B(如255)
那么有沒有一個可能
就是ds1302_read_time();這函數在讀取分鐘值時受到中斷或其他因素干擾"

突然多于B,表現為不穩定,如果是亂入,也是一個固定的亂入。
好吧,都見笑了,本來都是個標題貼,以后不發了。自己學習。
回復

使用道具 舉報

52#
ID:161164 發表于 2022-6-5 11:18 | 只看該作者
wolfinn 發表于 2022-6-5 06:34
分析得有道理,別的代碼沒必要放出來。
我誤解了,仔細看你所的加條語句是解決亂入問題的。
你說的我的 ...

對不起~誤會了你
想不到管X員還會刪代碼
回復

使用道具 舉報

53#
ID:624769 發表于 2022-6-5 14:37 | 只看該作者
wolfinn 發表于 2022-6-4 13:29
好吧,謝謝你,左邊是一個現算值,右邊一個算好的變量值,數據亂入?不想吵了,謝謝你,浪費了你的時間。

本不打算再回復此帖,正好路過,也不打算再幫你分析了,就給你指條路,

DS1302  時常讀出   0xff      這幾個關鍵字,你可以百度一下。

多了也沒力氣說,想要進步就自己好好分析一下, 0xff 是不是一定大于你右邊任意值,要是還是故步自封,那也是你自己的事了。就像我回復另一個帖子說的,這個論壇提問的都是爺爺,您愛怎樣就怎樣吧。
回復

使用道具 舉報

54#
ID:776619 發表于 2022-6-5 15:33 | 只看該作者
188610329 發表于 2022-6-5 14:37
本不打算再回復此帖,正好路過,也不打算再幫你分析了,就給你指條路,

DS1302  時常讀出   0xff      ...

謝謝你,本來就是水貼,本來也沒想在什么24小時必答版放的,既然管理員把我第一個貼放那里了,也就多放了幾個。
       雖說從未想水過那貼,但如查寫,也是“單片機會打斗地主?總是給我顯示黑桃2、紅桃3........"
亂入不是沒有,但我同時也在顯示屏上看著的,也可能眼睛沒那么快。
回復

使用道具 舉報

55#
ID:776619 發表于 2022-6-5 15:38 | 只看該作者
188610329 發表于 2022-6-5 14:37
本不打算再回復此帖,正好路過,也不打算再幫你分析了,就給你指條路,

DS1302  時常讀出   0xff      ...

照這么說,最高明的那倆朋友的方法也不可靠了,不同就加1,也會定時不準。
回復

使用道具 舉報

56#
ID:64283 發表于 2022-6-5 22:30 | 只看該作者
WIFI中有個叫看門狗的設置,你需要在程序中,時常去喂狗,就不會出現你說的情況了
回復

使用道具 舉報

57#
ID:776619 發表于 2022-6-6 15:44 | 只看該作者
lkc8210 發表于 2022-6-5 11:18
對不起~誤會了你
想不到管X員還會刪代碼

我說的是我先寫代碼,然后再寫現象,管理員發現我表述順序不好,然后把我寫的現象改到了前面,,然后替我寫了句代碼如下。我并沒有說管理員刪了我的代碼。我的貼一直都想說我遇到了什么現象,最后能夠解決的話寫上解決方法,無論是我引起的問題,好讓別人看到后“哦,原來這樣。”就行。如不是為了表述方便我連代碼都不貼。沒有人這世界上會要24小時畢答我的。
回復

使用道具 舉報

58#
ID:776619 發表于 2022-6-6 15:46 | 只看該作者
ephzq 發表于 2022-6-5 22:30
WIFI中有個叫看門狗的設置,你需要在程序中,時常去喂狗,就不會出現你說的情況了

沒接Wifi, 僅僅是讀分鐘然后比較而引起的局部小問題。
回復

使用道具 舉報

59#
ID:776619 發表于 2022-6-7 03:57 | 只看該作者
一直沒做什么動作,剛才試了一下。
對各位的建議還是表示感謝,都會在心里過一下,雖然沒有去執行一下,心里覺得有那可能,但不太象。
其實搞好了可以用DS1302長時間定時的,會舉一反三的人可能會知道,有時不太想說,明白的人也會明白。
用我認為最可能的,把左邊的在前面一句用相同的類型變量先算出來,再入條件比較,這樣避免類型不同引起的自動轉換問題(其實是我的不懂,是根本沒有數據類型)。這樣有了類型后倆個值也可以打印輸出了。
可以打印輸出后發現初值為零了。經檢查發現好象是被Wifi的一個函數沖擊造成的。按說應該不會的,函數主要是輸出一些AT指令到ESP8266,連網,獲得時間數據串。因為沒接串口,僅僅空發AT指令,這些不在研究問題上,自己會看看。不再表述。
把獲取初值語句放wifi函數后面即可獲得正確初值,后面就是while(1)大循環了。
1.最佳的情況,獲取正確初值情況下,左值先運算值,基本正確。
2.在正確初值情況下,左值還是原來一樣用公式算,能定時,但好象不穩。
3在初值不正確情況(為零),左值是公式還是先放變量里,在==比較右值時好象可以定時,但定時時間不確定。
因為試的各種可能試的內容比較多,有點蒙圈
如果1情況屬實,將不再說明,會將貼子標題改【已解決】。
對wifi函數為什么會沖掉初值自己會看看(里面沒有用到那個變量名)。
回復

使用道具 舉報

60#
ID:645485 發表于 2022-6-7 23:35 | 只看該作者
Hephaestus 發表于 2022-6-4 23:16
傳說中三個臭皮匠賽過諸葛亮,但是這個帖子告訴我們一個臭皮匠能氣死三個諸葛亮。
原諒我不厚道的笑了!!!
回復

使用道具 舉報

61#
ID:624769 發表于 2022-6-9 18:21 | 只看該作者
wolfinn 發表于 2022-6-5 15:38
照這么說,最高明的那倆朋友的方法也不可靠了,不同就加1,也會定時不準。

給你那個 判斷方法,從來沒說可以解決你的問題, 只是告訴你,你根本不用計算就能判斷是不是過了5分鐘,并且,用那個方法之后,你不到5分鐘就跳出來,你就能意識到,原數據有錯誤,才會去著手解決數據亂入的問題。那么多人讓你串口把數據發出來,都是基本確定了:你的問題就是 原數據 有問題了,唯獨你不自知。
回復

使用道具 舉報

62#
ID:776619 發表于 2022-6-9 23:54 | 只看該作者
188610329 發表于 2022-6-9 18:21
給你那個 判斷方法,從來沒說可以解決你的問題, 只是告訴你,你根本不用計算就能判斷是不是過了5分鐘, ...

我想說的是,既然會有數據亂入,那么假如我1分鐘內循環取了10次值,正常情況下這個數是不會變的,而有了數據亂入,那就更亂了,相隔兩個值亂入一次,只好象過了五分鐘一樣。而對于一個定時程序,1000次有一次亂入都是不允許的,就如同用在學校里打鈴一樣,剛上課一會又打下課鈴了,這怎么行。
    我這個問題除了我所解決的數據類型不定,還有沖掉初值問題外,還有一個就是一個綜合利用所引起的數據錯亂問題。可能如下:1變量和數組利用過大,加上堆棧的管理,讓變量的地址重疊。2.LED沒有進行排忙命令處理引起的亂跳(當然這問題貼子里我沒有描述)。3大量串口中斷引起的故障。(其實這個和1是差不多同一個意思,只是我接不接串口線表現不同而已。)
回復

使用道具 舉報

63#
ID:776619 發表于 2022-6-11 00:10 | 只看該作者
說點題外話。
我做的是一個可以顯示溫度的時鐘。做好后沒有用鍵盤調時的功能。
其實用串口輸入也是可以進行調時的。用2022/23/05 15:32:00、2022,23,05,15,32,00、2022|??|23|05#15(32;00#等等方式都可以,用幾個分隔符,用什么分隔符都不重要。只要知道時分秒等數據在第幾位就行。相關的串口處理程序能很好地解析出來送入DS1302更新就可以。
高手一點的話還可以用一個查詢語句AT?,單片機機收到是AT?后知道是查詢時間格式輸入方法。輸出一句應相應的格式語句就行。再高高手的話把AT?做一下大小處理,無論是輸入大寫的AT,還是小寫的at,還是大小寫的,都認為是查詢輸入時間格式命令。
回復

使用道具 舉報

64#
ID:776619 發表于 2022-6-11 00:31 | 只看該作者
我連串口輸入調時的程序都沒有做。
那么既然串口可以輸入,我知道有人用GPS和WIFI也做過對時的,,也有相關的文章之類的在各論壇發表過。GPS模塊輸出的也是有關定位數據,時間數據,速度,方向等等信息。只要把時間信息解析出來,更新到DS1302就行。也有現成的商品賣,兩面大紅字顯示的賣到上千元一個,也有便宜一點的。有一家只要幾十塊,Wifi、GPS、電波鐘都有。不是為他做廣告。只是說明個情況。學單片機就是玩,也不指望用它能掙到什么錢,如果要看時間,花個10來塊買個電子鐘,一年下來也很準時,就算差個一兩分鐘也沒有什么感覺。
回復

使用道具 舉報

65#
ID:776619 發表于 2022-6-11 00:38 | 只看該作者
網上賣的GPS模塊有多種,30塊錢左右有單模的,有GPS/北斗雙模的,還有三模的,有接小天線的,模塊上背個四方的陶瓷天線的,也有可以外接天線的。也有賣說是雙模,實際上賣出來的是僅有GPS信號。不過都可以有定位時間等文字輸出,只不過收星多少的問題。Wifi模塊更便宜了,就是四五塊的ESP8266。



回復

使用道具 舉報

66#
ID:883242 發表于 2022-6-11 01:20 | 只看該作者
子曰:“朝聞道,夕死可矣。”

沒有弄清楚到底是怎么回事,就輕易放棄,然后找了個“花個10來塊買個電子鐘”來證明追求真相是廉價的。那就是個不折不扣的懦夫。遇到挫折不是想要去克服,不是想要征服挫折,而是拿挫折的價格來說明自己懦弱是有道理的,這種人,一輩子都是懦夫。

在社會上混,一輩子都不行,反正競爭不過別人,都可以用別人買的產品才比你便宜一毛錢來解釋,一毛錢就能把壯漢變成懦弱無能的制杖。
回復

使用道具 舉報

67#
ID:776619 發表于 2022-6-11 01:42 | 只看該作者
先說下GPS實現方法。
拿到GPS模塊,用串口助手就可以調試了。不過用這前最好把它拿到天臺,用個充電寶,接上USB轉TTL接口先收一陣子衛星,這樣回到屋子它就可以記住最好的星鏈表,接收起來快點。
基本上能見天就有信號,一顆星就能有UTC標準時間輸出。三到四顆星就可以定位。
通電未能定位在助手信息如下圖:


每秒鐘發送幾行信息:


一組信息內有時間信息的行:


有具體一點年月月時間信息的行:


如果是調時間,解析有時間信息內容的哪一行的都可以,但如果要整年月日等,最好是每組內上圖這一行。


下圖是有具體定位信息的內容,不過51單片機功能太小,定位信息也沒有地圖接口可用,倒是行進方向和速度如查解析出來倒是可以做個自行車碼表之類。
回復

使用道具 舉報

68#
ID:776619 發表于 2022-6-11 02:03 | 只看該作者
知道個什么原理,就好辦了。寫相關的串口程序。
$GNZDA,152547.000,10,06,2022,00,00*4D
先檢查收到的是不是"$"字符,是的話計數器清零,用計數器做下標存接收數組,再接收五個字符,看看數組內是不是接收了$GNZDA,是的話繼續存入數組。不是就不管它,讓串口接收程序空轉。
等收到換行(0X0A),就可以關了串口中斷,進行數據解析,更新DS1302了。當然,里面要做時區處理,每天的16:00:00~24:00:00(UTC),也就是北京時間0點到早上8點要做加一天處理,還有如果是月尾大小月30天31天,2月的閏年閏月2829,滿年要加年之類的日期處理。如果要更精確那更多的處理。因為數據出來是最好要加1秒是比較準的,要不會慢1秒。而加1秒又要做什么滿60秒分鐘加1等等判斷。

接口程序做好后就算沒有接GPS模塊,也可以用串口助手輸入相應的一行字符調時,如下圖。
回復

使用道具 舉報

69#
ID:776619 發表于 2022-6-11 02:07 | 只看該作者
下面兩圖是我做的,請看第三行前面是個標志,如果正在對鐘就顯示一個向上箭頭,如果對時完成顯示一個星。

回復

使用道具 舉報

70#
ID:776619 發表于 2022-6-11 02:24 | 只看該作者
本帖最后由 wolfinn 于 2022-6-11 08:14 編輯

如果一顆星信號都沒有,數據幀頭是一樣的,但里面的時間日歷沒有,只有幾個分隔符逗號連著,不過可以通過收到換行符后計數器的大小判斷,比如大于39的為有效數據。
    解析語句搜網上資料有人用的是結構體來進行,什么結構體共同體,那東西我不懂,反正用笨笨的方法能搞出來就行。
回復

使用道具 舉報

71#
ID:776619 發表于 2022-6-11 02:33 | 只看該作者
程序設計有兩個內容,一個是上電對時一次。一個是每天對時一次。
真正的是每天21:59:59對時,打開相關的標志,打開串口接收程序,接收數據正確后更新DS1302,關閉標志,設置成功標志,讓星星能顯出來。如果有可能,關GPS模塊的電。不過一般GPS室內信號比較弱,常開電反倒能保持星鏈組。
上電對時主要是有利于調試和第一次使用的,不可能開機不能對時,等內部時間走到22點再對時吧?
回復

使用道具 舉報

72#
ID:776619 發表于 2022-6-11 02:46 | 只看該作者
有一個注意事項是程序設計下載是GPS不能接著,要不程序下載不成功到單片機內。
回復

使用道具 舉報

73#
ID:776619 發表于 2022-6-11 02:50 | 只看該作者
再說下Wifi模塊對時原理吧。
下面兩圖是我的時鐘用wifi對時未成功和成功的圖,就是標志換了下。

回復

使用道具 舉報

74#
ID:776619 發表于 2022-6-11 03:47 | 只看該作者
本帖最后由 wolfinn 于 2022-6-11 11:54 編輯

wifi對時我想了兩周才弄出來。
Wifi對時和GPS對時原理一樣,就是通過一串騷操作,得到一串串口有時間日期信息的字符去處理。但又有點不同,GPS是被動方式,它不用做什么,總能在串口得到數據。而Wifi模塊對時要連上家里的路由器,發出幾個AT命令,才得到有關數據。
有個網址在電腦上瀏覽器內打上,得到的數據是最完美的,但是我一直在模塊上弄不出來。
后來我在相關內容的貼子里看到有人說隨便連上個網站,然后隨便輸入,出錯信息里就有時間數據。開始我也沒做出來。因為有些網站他是不會有相關回應的。
好了,拿到wifi模塊,我用的是ESP-01S,別的ESP 8266可能也一樣可以的吧。先用USB轉TTL接口調試。
接上家里的寬帶及密碼,重新上電確認它能自動連家里的Wifi,用AT查分配有IP及網關掩碼等內容。
輸入以下AT命令:
AT+CIPSTART="TCP","www.網址.com",80
AT+CIPMODE=1
AT+CIPSEND
然后就會出現個>號,然后在后面隨便輸入點東西,就會有一大堆東西跳出來,里面就有UTC時間消息。

數據接收就是>后面的一堆東西,可以從換行符(隱藏的,顯示不出來的0X0A)收到換行符后計數器清零,接著收到的四個字符是Date的話就計數繼續存數據。直到換行符出現,再根據換行符時的計數值判斷數據的有效性。要不是Date的話就只接收,空轉不存,直到遇到換行符再看后面四個字符是不是Date。
解析數據就同GPS對時的一樣了,就是數據幀頭不同,位置知道了數據也就能弄出來。
   也是每天22點對時一次,也是上電對時一次,以利于調試和第一次使用。
回復

使用道具 舉報

75#
ID:776619 發表于 2022-6-11 03:57 | 只看該作者
調試程序花了點時間,因為用助手時不用考慮延時的,而程序中每句AT命令要有1秒左右的延時。同時助手是自動加入回車換行,程序口也必須加上。
選用網址我用的是央視網,連上網站后在>號后我打入的是123然后回車,所以如果有人上央視網如果有點卡頓,可能是我的時鐘正在上網對時。這也是句笑話,花不了什么時間的,網站服務器并發量大得很。
回復

使用道具 舉報

76#
ID:776619 發表于 2022-6-11 04:13 | 只看該作者
本帖最后由 wolfinn 于 2022-6-11 04:16 編輯

對于連上一個網站,它會多久脫網不知道。
另外ESP8266透傳方式退出有時會不是很好地退出。當然可以用語句來判斷它是不是退出了透傳方式,但還是會有退不出的現象,那么下一次對時就不能進行了,時間可以走,向上箭頭總是顯示。
   為了解決這個問題,最好的方式是斷電,在正常情況下,對時完成,也可以關繼電器,這個做到是沒有問題的。就怕是某一天家里網絡出故障連不上網,對時也就無從說起。
   所以就想到了一開機,或者是每天22點打開串口接收后,不管它收不收到正確的對時數據,都在5分鐘后關Wifi模塊,說什么節能那是戲說。
  當然羅,定時的方式多種多樣,我的LED第四行顯示的就是格言名言,兩句話的切換就是最簡單的計數定時,在大循環里計一個數,等于一個值時就切換顯示第二句,再到另一個值時計數清零再切換顯示第一句。
回復

使用道具 舉報

77#
ID:776619 發表于 2022-6-11 04:23 | 只看該作者
本帖最后由 wolfinn 于 2022-6-11 05:03 編輯

串口一大堆信息內容,真正有用的就是有時間那一句,收到那一句后的換行符后數據有效的話就關串口接收程序,后面的內容不收了。
回復

使用道具 舉報

78#
ID:776619 發表于 2022-6-11 22:23 | 只看該作者
學習單片機,最大的是滿足感,學會了顯示圖片,就想到了做個片頭來套進自己的作品內。甚至連轉場也放一個圖片,運行后發現卡死了,該有的東西它也不見了。查了查,發現程序編譯后的空間已經大過8K。同時雖說用CODE可以把圖片內容限定在ROM空間,節省寶貴的內存資源,但運行起來刷新奇慢。只能取消這屁顛顛的興趣,真的要用,也用文字來顯示版權公司等信息。
回復

使用道具 舉報

79#
ID:776619 發表于 2022-6-11 22:30 | 只看該作者
上傳共享個C語言教程文件吧,某專業網站一點點扣下來的,里面可能會有該網站的信息,不知管理員會不會放行。現在這個論壇對這些太嚴了,有時放個網址來討論都被刪改。說淘東西只能某一個寶或馬云家。

C 語言教程_20220512133830.pdf

1.64 MB, 下載次數: 5

C語言教程

回復

使用道具 舉報

80#
ID:776619 發表于 2022-6-13 12:00 | 只看該作者
今天看到51單片機有個PCON電源管理寄存器,里面的GF1、GF0是可以讓人自由使用的,這樣就可以把它們做為倆個Flage標志變量,程序設計中就可以少用倆個變量,節省資源了。還有單片機的低功耗和掉電模式也值得學習,用好了可以實現節能和有趣味的功能。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品三级 | 国产福利在线视频 | 久久久一区二区三区四区 | 一本一道久久a久久精品综合蜜臀 | 日本久久精品视频 | 国产综合视频 | www国产精| 国产98色在线 | 日韩 | 国产精品日韩一区二区 | 日韩精品成人 | 成人国产免费视频 | 三区四区在线观看 | 国产91精品久久久久久久网曝门 | 日皮视频免费 | 亚洲欧美网站 | www.国产精品 | 国产区久久 | 亚洲成人激情在线观看 | 日韩av视屏 | 国产精品特级毛片一区二区三区 | 成人伊人 | 欧美精品一区二区三区四区五区 | 天堂免费 | 精品福利在线视频 | 成人在线视频观看 | 四虎永久免费黄色影片 | 在线一区 | 中文字幕精品一区久久久久 | 91精品国产91久久久久久密臀 | 中文在线а√在线8 | 可以看黄的视频 | 国产一区二区在线播放视频 | 精品人伦一区二区三区蜜桃网站 | 天天干视频 | 中文字幕第一页在线 | av看看 | 久久九九影视 | 999国产精品视频 | 日韩午夜影院 | 日韩一区二区三区av | 91成人|