欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

程序運行過程中,有些數(shù)據(jù)被莫名修改了怎么辦?

魚鷹談Linux ? 來源:魚鷹談單片機 ? 2023-08-10 09:11 ? 次閱讀

導(dǎo)讀程序運行過程中,有些數(shù)據(jù)被莫名修改了,在哪里修改的?又是怎么修改的?這個代碼我只想知道是否運行過,或者運行了多少次,但是不想讓程序停下來,或者僅打印調(diào)試信息,怎么辦?當這個變量設(shè)置成某個數(shù)據(jù)后,我想讓程序自動暫停下來進行分析,怎么辦?

以上問題的所有答案就在本節(jié)內(nèi)容:斷點窗口(KEIL)。

本節(jié)內(nèi)容將顛覆你之前對斷點調(diào)試的認知。這個調(diào)試技巧魚鷹也用了半年多了,當時知道這個調(diào)試方法的時候特別興奮,感覺發(fā)現(xiàn)了新大陸。而這個調(diào)試技巧也在魚鷹接手公司項目代碼的時候快速解決了不少疑難雜癥,而前些天又擴展學(xué)習了這個技巧的功能,更是讓魚鷹在學(xué)會之后輕松解決了好幾個一般調(diào)試方法很難解決的 BUG,相信這個技巧也將為魚鷹之后的開發(fā)調(diào)試之旅發(fā)揮更大的作用。

我們知道常規(guī)的斷點調(diào)試是在想觀察哪里的問題時就在對應(yīng)的代碼地址設(shè)置斷點,并且一旦運行到斷點位置會讓程序自動暫停運行,這種斷點調(diào)試功能確實為開發(fā)者解決 bug 立下了汗馬功勞,但是這種方式有很大的局限性,因為很多時候我們并不需要讓程序停下來,而只想知道是否在這段代碼運行過,或者說發(fā)生問題的位置根本不能停下來,否則就會讓整個系統(tǒng)功能出現(xiàn)問題,比如中斷處理函數(shù)的調(diào)試,程序一旦停下了也就失去了所有中斷的后續(xù)響應(yīng);比如兩個設(shè)備通信,一方采用常規(guī)斷點的方式調(diào)試,肯定會打斷正常的通信過程,而這可不是我們想要的,我們只想知道在收到或發(fā)送數(shù)據(jù)后得到環(huán)境快照,而并不想讓程序停下來。以上這些問題可以采用打印方式解決,但是打印調(diào)試也有很多弊端:

以串口為例:

1、你必須添加必要的打印和串口驅(qū)動代碼,如果你使用 printf 函數(shù),你還得重定向(如果對空間要求高的話,你得知道使用 printf 差不多要占用 1K 大小代碼空間)。

2、如果打印效率比較低,常規(guī)波特率 9600 和 115200 打印一個字符串耗時可能比較久,那么對于中斷頻率較高的函數(shù)就可能就不適用了。如果你使用 printf 函數(shù),你還得考慮函數(shù)是否可重入問題。

3、在代碼中引入調(diào)試代碼有風險,本來程序運行沒有問題的,一旦引入調(diào)試代碼之后可能就出現(xiàn)了問題,這種情況對于擁有豐富開發(fā)經(jīng)驗的人來說應(yīng)該見怪不怪了。原因就在于打印輸出時間太久,打亂了程序運行的節(jié)奏(而這也是我推薦使用 ITM 調(diào)試的一個原因,因為它的輸出效率比串口要高得多),或者打印函數(shù)本身有問題,也會導(dǎo)致程序運行出現(xiàn)問題。

4、調(diào)試完畢之后,你必須把對應(yīng)的調(diào)試代碼刪除(不管是刪除代碼還是使用宏,都要進行這一步),不然會影響運行效率。而人是健忘的(也不能說健忘,可能只是因為專注于 BUG 本身,容易忘記其它細枝末節(jié),而解決 bug 之后的欣喜更可能忘記后續(xù)處理工作了)這個時候你可以嘗試用 #warnning。但是這一步還是必不可少。

而以上問題的解決方案就是 KEIL 的斷點調(diào)試窗口!

首先打開數(shù)據(jù)觀察點的窗口:

wKgZomTUOW2ADmrMAAB1dhoTLhU371.jpg

快捷鍵是 Ctrl + B。

可以看到如下窗口:

wKgZomTUOW2AY8TMAADMq-dSmjs058.jpg

當然你也可以通過下面這種方式打開并設(shè)置:

wKgaomTUOW2AAmtMAAA-uLtbxa0701.jpg

從這里你會發(fā)現(xiàn),其實這個窗口就是用來管理你設(shè)置的斷點的。平常使用的設(shè)置斷點方法只是其中的一種特例罷了。

首先要知道的就是,調(diào)試器支持的斷點數(shù)量是有限的,具體有多少視情況而定,一旦 KEIL 警告你設(shè)置斷點太多,那么就要刪除一些斷點了:

wKgZomTUOW2AJVLJAABGcmUjByY947.jpg

常規(guī)用法

1、代碼位置運行次數(shù)

有些時候我們想知道某些代碼的運行次數(shù),比如進入中斷處理函數(shù)的次數(shù),尋常的斷點設(shè)置方式必然會讓程序停止在中斷程序中,但有些時候我們并不希望它停下來。這個時候,你只需要打開該窗口,找到已有的對應(yīng)斷點位置,雙擊之后就可以看到類似下面的窗口:

wKgaomTUOW2ADc5VAADYv6G0mxQ847.jpg

此時,你將 Count 的值設(shè)置的盡可能大一些,那么就可以讓程序運行多次之后才停止。

比如我們設(shè)置 Count 的值為 100 次,那么必須在該代碼位置運行 100 次才會讓程序暫停。當你設(shè)置完后點擊【Define】后,就會詢問你是否需要重新定義,你選擇“是”即可。

wKgaomTUOW2AS0eBAACuHRco3xI616.jpg

這樣你的斷點變成了這樣:

wKgZomTUOW2ADwgBAABFBAzUj5Q331.jpg

后面的 count=100 表示剩余運行次數(shù)為 100,運行 100 次后將停止程序。前面的 00 代表斷點號,E 代表這是一個執(zhí)行斷點,0x080016B0 代表代碼地址,后面的是源碼位置。

當這個斷點位置運行了 2 次,重新打開該窗口(刷新數(shù)據(jù)),發(fā)現(xiàn)這個數(shù)變成了 98,從而可以推算出,已經(jīng)運行了多少了。如果說你想讓這段代碼運行 2 次后停止,那么你只需要一開始設(shè)置 Count 的值為 2 即可。

wKgaomTUOW2ARIoGAABEcivcu8A999.jpg

2、數(shù)據(jù)訪問

有些時候我們需要知道一些變量會在哪里被訪問,那么你可以設(shè)置該變量的訪問條件。比如魚鷹想知道 emOspery 變量會在哪里被讀?。磕敲茨阒恍柙O(shè)置如下:

wKgaomTUOW6AdjfbAACbAAbgNpI179.jpg

定義之后就是這樣:

wKgZomTUOW6ARJF8AABfooKNIr8644.jpg

因為 Count 值設(shè)置為 1,所以每一次讀取 emOspery 的操作都將使程序停止。比如這段代碼:

wKgaomTUOW6AFuAEAABQrN0svLk696.jpg

還有后面的打印函數(shù)也使用 emOsprey 變量,所以也會導(dǎo)致程序運行停止。可能你會感到奇怪,為什么 emOsprey++這樣的操作也會涉及到讀取?事實上你理解了 CPU 寄存器存在的意義也就明白了。

而當你設(shè)置為寫(Write)訪問時,你會發(fā)現(xiàn)從復(fù)位程序開始運行后,程序會停止在某個地方,這是為什么?當你知道全局變量會在進入 main 函數(shù)之前被初始化時,你也就明白為什么了。

在這里我們選擇使用 Objects 訪問,即按整個變量對象進行訪問,上面的 emOsprey 變量實際上是 uint16_t,所以 len 為 2,即字節(jié)大小。也就說,如果你設(shè)置為 Objects 訪問,那么它會根據(jù)實際的情況設(shè)置訪問范圍。

為了更好的說明這一點,我構(gòu)造一個結(jié)構(gòu)體。

wKgZomTUOW6AfDgfAAA0XCgr-Z0927.jpg

這個結(jié)構(gòu)體大小可以看出是 6 個字節(jié)。

然后設(shè)置訪問該結(jié)構(gòu)體的條件:

wKgaomTUOW6ABk_nAACE4fJh0nM983.jpg

如果我們按 Objects 訪問的話,那么下面的每一條語句都會導(dǎo)致程序運行的停止。

wKgZomTUOW6AFzCUAABCWKobRZw667.jpg

這是因為這些數(shù)據(jù)都在 Osprey 結(jié)構(gòu)體的范圍內(nèi)(從這里也可以了解到,只要在 len 的范圍內(nèi)的訪問都會導(dǎo)致程序停止運行,所以你可以試試將 Size 設(shè)置得更大)。

而如果設(shè)置為 Byte 訪問的話,那么就只有第一條語句才會導(dǎo)致程序停止運行:

wKgZomTUOW6AJGjVAABw9XSiy_M990.jpg

實際上如果你希望只在某個結(jié)構(gòu)體成員變量被訪問時才停止,那么直接這么設(shè)置就可以:

wKgaomTUOW6AKpnnAADXNY-L8O4992.jpg

你會發(fā)現(xiàn)設(shè)置是如此之簡單。

實際上還有一種更為通用的訪問方式,即按地址訪問。

上面可以看出 Ospery.Ospery1 成員變量的地址為 0x20000016(由此我們知道也可以通過這個來看出一個結(jié)構(gòu)體變量的地址是多少)。所以我們可以這樣設(shè)置:

wKgZomTUOW6AJEsuAAA_9cQntL8506.jpg

而代碼位置的斷點設(shè)置亦是如此。

斷點太多,怎么知道程序因何停止?看你的命令窗口就知道了:

wKgZomTUOW6ASMBJAABEd0BxxIQ378.jpg

3、數(shù)據(jù)匹配

有些時候,我們并不關(guān)注地址訪問情況,而對變量的數(shù)據(jù)內(nèi)容感興趣。比如說魚鷹想讓變量emOspery 等于 1 時停下來,怎么設(shè)置?

wKgaomTUOW6AOB_cAAB0YfPdv5A746.jpg

只要簡單的設(shè)置 emOspery == 1 即可(注意必須設(shè)置訪問條件,并且 Size 設(shè)置正確)。

事實上你也可以設(shè)置兩個變量相等作為條件:

wKgZomTUOW6AastMAAA8cpaGO7s992.jpg

設(shè)置為不等也是可以的:

wKgaomTUOW6AEfPkAABfSk-GaRo987.jpg

當然還有其它支持的運算就靠你們自己去發(fā)現(xiàn)了(可支持運算:&,&&,<,<=,>,>= ,==,!=)。

注意:以上內(nèi)容可以組合使用,比如讀、寫條件,計數(shù)器計數(shù)等可以同時設(shè)置。滿足條件時就會讓程序運行停止。

高級用法

以上為比較常規(guī)的調(diào)試功能,現(xiàn)在說說魚鷹剛學(xué)習的技能,這個技能的使用靈活性更大,而且對于解決疑難雜癥更是不二之選。

首先設(shè)置一個你需要的斷點:

wKgZomTUOW6AAzJ0AACANkrk4sk075.jpg

打開斷點窗口,并雙擊你之前設(shè)置的斷點:

wKgaomTUOW6AZxz8AABP5MTtsQ4358.jpg

設(shè)置 Command 為【printf(“USRAT_Init()\n”)】(注意\n,否則可能不能輸出,這個應(yīng)該是 KEIL 的一個 bug)。最后【Define】

清空你之前的命令(如果你不嫌亂的話,也可以不清空):

wKgZomTUOW6ADvA8AAA6XfuEEEc746.jpg

那么你的程序每次運行到這個代碼位置都會在Command 窗口輸出一條信息:

wKgaomTUOW6AO6SwAAAc2GhrhMA432.jpg

但是你的程序并不會停止。

如果說你想讓斷點代碼位置運行多次之后才輸出一條信息也是可以的,只要設(shè)置Count 即可。

這里可能你會問,這 printf 不就是我們寫的打印函數(shù)嗎?事實上,是,也不是。

這個函數(shù)是打印函數(shù)沒錯,但是這是 KEIL 調(diào)用的打印函數(shù),輸出位置是 Command 窗口,和你自己寫的代碼沒一點關(guān)系,每次觸發(fā)條件時KEIL 都會調(diào)用該函數(shù)進行打印,而不會讓你的程序暫停運行。事實上這個 Command 絕不僅僅只是設(shè)置 printf這么簡單,如果真是這樣我也不會如此推崇它了,感興趣的可以去官網(wǎng)查找關(guān)于調(diào)試命令的使用方法。

因為是利用 KEIL 去執(zhí)行打印任務(wù),所以對你的程序幾乎沒有任何影響,并且在你設(shè)置斷點后也不用擔心刪除代碼問題,可以放心飲用。還有一個額外的好處就是,對于所有能設(shè)置調(diào)試斷點的單片機都適用,因此對于調(diào)試器也就沒有過多的要求了,比如說,不管你是用JLINK、ST-LINK 還是CMSIS-DAP(CMSIS-DAP 不能使用ITM,所以魚鷹才會想著用別的方式替代??偹闶钦业搅耍宜谀承┓矫娓錾?,都可以這么用。

現(xiàn)在摘錄官網(wǎng)一些關(guān)于斷點窗口的知識:

表達式定義斷點類型:

§當設(shè)置標志 **Read **或 **Write **或兩者時,訪問中斷(A被定義 。發(fā)生指定的內(nèi)存訪問時會觸發(fā)斷點。以字節(jié)為單位指定內(nèi)存訪問窗口的大小,或者以表達式的對象大小指定。對于此斷點類型,**Expression **必須解析為內(nèi)存地址和內(nèi)存類型。允許的運算符(&,&&,<。<=。>,> =,= =和!=)在程序執(zhí)行暫停或執(zhí)行**命令**之前比較變量值 。

§當Expression解析為代碼地址時,將執(zhí)行執(zhí)行中斷(E。到達指定的代碼地址時觸發(fā)斷點。代碼地址必須引用 CPU 指令的第一個字節(jié)。

§當Expression不能簡化為地址時,定義條件中斷(C。當條件表達式變?yōu)?TRUE 時,斷點將觸發(fā)。在每條 CPU 指令之后重新計算條件表達式,并且會大大減慢程序執(zhí)行速度。

計數(shù)值指定的次數(shù)的斷點表達式必須計算為 TRUE 斷點觸發(fā)之前的數(shù)目。

命令被指定的μVision 執(zhí)行語句,然后恢復(fù)執(zhí)行程序。此處指定的命令可以是μVision 調(diào)試或信號功能。要從這些函數(shù)中暫停程序執(zhí)行,請設(shè)置系統(tǒng)變量break

注意

當在模擬器中將訪問斷點(讀或?qū)懀┰O(shè)置為外設(shè)寄存器(SFR)時,即使應(yīng)用程序未訪問外設(shè)寄存器,斷點也可能觸發(fā)。發(fā)生這種情況是因為μVision 模擬器在應(yīng)用程序驅(qū)動和模擬器內(nèi)部訪問之間沒有區(qū)別。

里面有一個比較關(guān)鍵的就是關(guān)于條件中斷(C,如果你設(shè)置的表達式不是一個代碼地址,也沒有設(shè)置讀寫訪問條件,那么就會被設(shè)置為條件中斷,一旦設(shè)置為條件中斷,那么會在每條匯編指令后計算表達式,這會影響程序正常運行速度,所以沒有必要的話,不要設(shè)置為條件中斷。

設(shè)置斷點的一般錯誤總結(jié):

當彈出以下窗口時,說明斷點設(shè)置錯誤,需要查看命令窗口才能知道具體錯誤信息。

wKgZomTUOW6AAvbWAABLxpmJx9o596.jpg

**a) **斷點太多

刪除一些斷點即可

**b) **重復(fù)定義斷點

這是因為之前你已經(jīng)定義了這個斷點,而現(xiàn)在你又定義了這個斷點,這個時候你可以選擇覆蓋之前的斷點或者保留之前的斷點

**c) **不允許對同一個資源設(shè)置不同類型斷點

這個是由于對同一個資源準備設(shè)置不同斷點導(dǎo)致的,需要刪除之前的設(shè)置的斷點才行。

**d) **表達式錯誤

檢查你的表達式是否正確,注意如果你使用了運算符,那么對于浮點變量的支持好像并不正常,不管你怎么設(shè)置,都說表達式錯誤。

到此,斷點窗口(前期我叫它數(shù)據(jù)觀察點,我也不知道從哪看到的這個詞,后來覺得還是斷點窗口比較準確)的內(nèi)容就結(jié)束了。這個小節(jié)內(nèi)容對于調(diào)試而言絕對是一大利器,也是魚鷹決定寫這個KEIL 調(diào)試系列文章的主要原因。但是以上所有的調(diào)試內(nèi)容都有一個很大的局限性,就是它只能定格在某一刻(如果你使用Command 命令就不一樣了),而這一刻前面的所有信息都無法知曉。這個時候就要了解另一個調(diào)試技能,ITM,它能將程序從出生(復(fù)位程序開始)到死亡(死循環(huán)或者斷電)的大部分信息記錄下來。這個章節(jié)內(nèi)容早已發(fā)布,感興趣的就去前面看一看咯。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5368

    瀏覽量

    121241
  • 計數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2274

    瀏覽量

    95032
  • CMSIS
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    11946
  • 調(diào)試器
    +關(guān)注

    關(guān)注

    1

    文章

    306

    瀏覽量

    23847
  • 串口驅(qū)動
    +關(guān)注

    關(guān)注

    2

    文章

    82

    瀏覽量

    18758

原文標題:數(shù)據(jù)被篡改了,無法在線調(diào)試該怎么定位?

文章出處:【微信號:eOsprey,微信公眾號:魚鷹談Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    CAN發(fā)送接收過程中收到到的數(shù)據(jù)過大怎么辦??

    本人在做CAN庫函數(shù)。現(xiàn)在遇到一個問題:要是接收的數(shù)據(jù)包過大,接收緩沖區(qū)放不下,怎么辦?同樣在發(fā)送過程中也是這樣的問題,要是發(fā)送過程中數(shù)據(jù)
    發(fā)表于 07-18 13:05

    認證名字寫錯了 無法修改了 怎么辦

    認證名字寫錯了 無法修改了 怎么辦 改了幾次 都改不過來求救了
    發(fā)表于 04-18 14:16

    MSP430F149 芯片運行過程中Flash更改

    ,會直接跳到boot程序后首先更改0xffe2處的內(nèi)容從而轉(zhuǎn)入boot程序執(zhí)行?,F(xiàn)在的情況是,在運行過程中也就一晚上吧,有些芯片的Flash
    發(fā)表于 05-24 10:05

    STM32在調(diào)試程序過程中發(fā)現(xiàn)按鍵切換會導(dǎo)致程序卡死怎么辦?

    STM32在調(diào)試程序過程中發(fā)現(xiàn)按鍵切換會導(dǎo)致程序卡死怎么辦?
    發(fā)表于 11-16 08:28

    嵌入式的變量意外修改怎么辦

    如何將實時操作系統(tǒng)移植到一款RISC-V架構(gòu)芯片上去呢?嵌入式變量意外修改怎么辦呢?
    發(fā)表于 12-24 07:43

    程序運行過程中可以直接調(diào)用rt_device_control修改串口屬性嗎

    程序運行過程中可以直接調(diào)用 rt_device_control 修改串口屬性嗎?如串口波特率
    發(fā)表于 08-01 10:49

    RT-Thread studio在仿真過程中想實現(xiàn)程序的復(fù)位該怎么辦

    studio我一直以為下面這個這個按鈕是這個功能,但是每次按了之后都沒有達到復(fù)位的效果,想問一下大家,這個按鈕是干嘛的?如果在仿真過程中想實現(xiàn)程序的復(fù)位該怎么辦?謝謝!
    發(fā)表于 08-30 14:21

    命令提示符被禁用怎么辦

    命令提示符被禁用怎么辦 方法一:修改注冊表   運行:regedit,找到[HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWi
    發(fā)表于 02-25 10:45 ?2358次閱讀

    Python如何防止數(shù)據(jù)修改Python的深拷貝與淺拷貝的問題說明

    在平時工作,經(jīng)常涉及到數(shù)據(jù)的傳遞。在數(shù)據(jù)傳遞使用過程中,可能會發(fā)生數(shù)據(jù)
    的頭像 發(fā)表于 03-30 09:54 ?3107次閱讀
    Python如何防止<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>被</b><b class='flag-5'>修改</b>Python<b class='flag-5'>中</b>的深拷貝與淺拷貝的問題說明

    內(nèi)存修改了怎么辦

    內(nèi)存又稱主存,是CPU能直接尋址的存儲空間,內(nèi)存是電腦中的主要部件,它是相對于外存而言的。內(nèi)存是電腦中的主要部件,它是相對于外存而言的。
    發(fā)表于 06-02 09:36 ?1339次閱讀

    內(nèi)存卡寫保護怎么辦

    現(xiàn)在生活我們總是會使用到各種各樣的智能設(shè)備,內(nèi)存卡則是我們經(jīng)常會使用到的,但是在內(nèi)存卡使用過程中也會遇到一些問題,這就需要我們進行專業(yè)的處理,以幫助解決所遇到的問題,那么內(nèi)存卡寫保護怎么辦
    發(fā)表于 01-01 16:53 ?7978次閱讀

    原來單片機還隱藏了這些調(diào)試技巧 | 顛覆認知

    1.1.1.1 斷點窗口參考鏈接:http://www.keil.com/support/man/docs/uv4cl/uv4cl_db_dbg_breakpnts.htm程序運行過程中,有些
    發(fā)表于 12-22 19:50 ?5次下載
    原來單片機<b class='flag-5'>中</b>還隱藏了這些調(diào)試技巧 | 顛覆認知

    水泵控制使用過程中出現(xiàn)信號報警怎么辦

    過控制方式我們發(fā)現(xiàn),水泵一般設(shè)置在自動狀態(tài)比較合適。從而實現(xiàn)便捷、自動化的功能需求。 水泵控制使用過程中,出現(xiàn)信號報警怎么辦?有哪些排查步驟?
    發(fā)表于 07-25 11:34 ?3352次閱讀
    水泵控制使用<b class='flag-5'>過程中</b>出現(xiàn)信號報警<b class='flag-5'>怎么辦</b>

    在焊接過程中發(fā)現(xiàn)錫膏太稀怎么辦?

    近日有客戶咨詢在焊接過程中發(fā)現(xiàn)錫膏太稀怎么辦,今天佳金源錫膏廠家來為大家簡單分析一下,如果錫膏太稀,可能會導(dǎo)致在焊接過程中無法獲得良好的焊點質(zhì)量。以下是發(fā)現(xiàn)錫膏太稀怎么辦的幾種可能的臨
    的頭像 發(fā)表于 11-24 17:31 ?846次閱讀
    在焊接<b class='flag-5'>過程中</b>發(fā)現(xiàn)錫膏太稀<b class='flag-5'>怎么辦</b>?

    電力補償電容器運行過程中缺相怎么辦?

    電力補償電容器是現(xiàn)代電力系統(tǒng)不可或缺的重要設(shè)備之一。它能夠有效改善電力系統(tǒng)的功率因數(shù),提高電能利用率,降低電力系統(tǒng)的損耗。然而,在電力補償電容器的運行過程中,有時會出現(xiàn)缺相的問題。那么,當電力補償電容器
    的頭像 發(fā)表于 02-20 14:28 ?1076次閱讀
    電力補償電容器<b class='flag-5'>運行</b><b class='flag-5'>過程中</b>缺相<b class='flag-5'>怎么辦</b>?