導航:首頁 > 源碼編譯 > stm觸摸屏計算器演算法

stm觸摸屏計算器演算法

發布時間:2023-02-10 23:29:35

Ⅰ STM-1怎樣計算速度

STM-1幀由9行、270列共2430個位元組組成。傳送時按由左到右、由上至下的順序進行,直到整個幀傳送完畢。每秒傳送8000幀。因此其傳輸速率為:270×9×8×8000=155.520Mbit/s

STM-1:傳輸速率155MBit/s。

STM-4:傳輸速率622MBit/s。

STM-64:傳輸速率10GBit/s。

(1)stm觸摸屏計算器演算法擴展閱讀:

STM-1是SDH信號最基本的模塊。STM-1是網路的光介面卡。

SDH(同步數字序列同步數字系統)是一種乘法,行成一個傳輸和交換功能,和統一的網路管理系統操作的綜合信息傳輸網路,是美國貝爾通信技術研究所提出了同步光纖網路(SONET)

同步技術是數字通信系統中非常重要的一項技術,一般有(碼元)同步、字(碼組)同步、載波同步和幀同步,適用於網路系統和網路同步。

現代SDH數字傳輸網是一種全網同步的數字傳輸網。在接收端進行數據處理時,必須先從同步數據流中提取幀同步信息。幀同步提取的性能直接影響到整個數據的處理質量和整個系統的性能。

採用FPGA技術,實現了同步系統的模塊化、小型化和晶元化,獲得了穩定可靠的幀同步器。

Ⅱ stm32定時器的定時計算公式Tout= ((arr+1)*(psc+1))/Tclk里,為什麼預分頻系數以及寄存器周期的值都要加1

我的理解:
ARR+1:定時器寄存器是從0開始計時的,0也算做一個值,比如你定時10個定時器周期,那麼你往ARR寄存器中應寫入9
PSC+1:道理和上面一樣,0=1分頻,1=2分頻,2=3分頻,,,
雖然寄存器中的值是0,但實際上是1,所以計算的時候要+1

Ⅲ STM-16的計算推導

SDH的幀傳輸時按由左到右、由上到下的順序排成串型碼流依次傳輸,每幀傳輸時間為125μs,每秒傳輸1/125×1000000幀,對STM-1而言每幀位元組為8bit×(9×270×1)=19440bit,則STM-1的傳輸速率為19440×8000=155.520Mbit/s;而STM-4的傳輸速率為4×155.520Mbit/s=622.080Mbit/s;STM-16的傳輸速率為16×155.520(或4×622.080)=2488.320Mbit/s。

Ⅳ STM-1怎樣計算速度

STM-1幀由9行、270列共2430個位元組組成。傳送時按由左到右、由上至下的順序進行,直到整個幀傳送完畢。每秒傳送8000幀。因此其傳輸速率為: 270×9×8×8000=155.520Mbit/s

STM-1:傳輸速率155MBit/s

STM-4:傳輸速率622MBit/s

STM-64:傳輸速率10GBit/s

(4)stm觸摸屏計算器演算法擴展閱讀:

SDH是將復接、線路傳輸及交換功能融為一體、並由統一網管系統操作的綜合信息傳送網路,是美國貝爾通信技術研究所提出來的同步光網路(SONET)

同步技術在數字通信系統中是非常重要的技術,一般有位(碼元)同步、字(碼組)同步、載波同步和幀同步,對於網路系統來說還有網同步。現代SDH數字傳輸網是全網同步的數字傳送網路,對於接收端的數據處理。

Ⅳ STM32 ADC轉換如何計算

ADC轉換時間:

具有以下公式:TCONV=采樣時間+12.5個周期

對於12位AD採集,固定為12.5個周期。其他采樣時間可以由SMPx[2:0]寄存器控制。每個通道可以單獨配置。

000:1.5周期

100:41.5周期

001:7.5周期

101:55.5周期

010:13.5周期

110:71.5周期

011:28.5周期

111:239.5周期

當我們選擇1.5個周期。轉換時間=1.5+12.5=14個周期。

當時鍾配置為12MHz時,轉換時間=14/12=1.167us。

Ⅵ stm32單片機能寫復雜控制演算法么

1.PID原理
1.1 P I D三個參數簡單理解
1.2 P I D
1.3 PI PD PID適用系統
2.串級PID原理
3.PID代碼
3.1 單級PID
3.1.1 初始化PID結構體
3.1.2 單級PID計算
3.1.3PID初始化
3.1.4 清空PID
3.2 串級PID
3.2.1 初始化串級PID結構體
3.2.2 串級PID計算
4.PID的使用
4.1 定義PID結構體並初始化
4.2 定義電機速度函數
4.3 在檢測霍爾碼盤時發送速度給電機
4.4 實驗效果
1.PID原理
PID是什麼,P,I,D的分別功能

你和PID調參大神之間,就差這篇文章!

1.1 P I D三個參數簡單理解
P(比例): 簡單來說,P就是涼了加熱水,熱了加涼水。比目標值小,我就增加一點,比目標值大,我就減小一點。(現在)
P可能出現的問題: 1.P太小,達到目標值需要花費很長的時間,而且會有穩態誤差。2.P太大,達到目標值時可能會一直震盪。

I(積分): 將一段時間內的誤差累積起來加到輸出上,可以消除歷史誤差對當前實際曲線的影響,提高系統的穩定性。 (過去)
I可能出現的問題: 1.I太小,可以消除穩態誤差,但太慢了,對於某些需要很快響應的系統,顯然不能滿足要求。2.I太大,累計誤差佔比過大,就會出現抖動現象,難以收斂。

D(微分): 減小最大超調量。(下圖中③就是最大超調量。) 可以有效減小震動的幅度。讓曲線收斂更快 (未來)
D可能出現的問題: 1.D太小,作用小,時間長。2.D太大,為了減小超調量,補償的過多,導致震盪很久。
在這里插入圖片描述

1.2 P I D
先調P,逐漸增加P直到系統出現震盪,將當前值乘0.7就是較為合適的值。
再調I,將穩態誤差逐漸降低。
後調D,將最大超調量降到最低。

1.3 PI PD PID適用系統
PI:響應速度要求不那麼高的系統。
PD:大慣性系統。超調量太大。
PID:都可以。

網上將PID原理太多太多了,我的理解也都是參見上面的內容。認真看肯定有收獲。

2.串級PID原理
【串級PID】淺談串級PID作用及意義——快速理解串級PID結構優勢

這里個人理解就是,單機PID就是穩定速度。而需要帶位置和角度的就要用串級PID了。常用於平衡車,板球系統等。
而轉速閉環稱為串級PID的內環,位置 (角度) 閉環稱為串級PID的外環。其實也很好理解,位移是速度的積分,只有速度慢慢穩定,位置才能確定。

3.PID代碼
3.1 單級PID
3.1.1 初始化PID結構體
typedef struct _PID
{
float kp,ki,kd;
float error,lastError;//誤差、上次誤差
float integral,maxIntegral;//積分、積分限幅
float output,maxOutput;//輸出、輸出限幅
}PID;
1
2
3
4
5
6
7
1
2
3
4
5
6
7
3.1.2 單級PID計算
#define LIMIT(x,min,max) (x)=(((x)<=(min))?(min):(((x)>=(max))?(max):(x)))

//單級pid計算
void PID_SingleCalc(PID *pid,float reference,float feedback)
{
//更新數據
pid->lastError=pid->error;
pid->error=reference-feedback;
//計算微分
pid->output=(pid->error-pid->lastError)*pid->kd;
//計算比例
pid->output+=pid->error*pid->kp;
//計算積分
pid->integral+=pid->error*pid->ki;
LIMIT(pid->integral,-pid->maxIntegral,pid->maxIntegral);//積分限幅
pid->output+=pid->integral;
//輸出限幅
LIMIT(pid->output,-pid->maxOutput,pid->maxOutput);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
3.1.3PID初始化
void PID_Init(PID *pid,float p,float i,float d,float maxI,float maxOut)
{
pid->kp=p;
pid->ki=i;
pid->kd=d;
pid->maxIntegral=maxI;
pid->maxOutput=maxOut;
}
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
3.1.4 清空PID
//清空一個pid的歷史數據
void PID_Clear(PID *pid)
{
pid->error=0;
pid->lastError=0;
pid->integral=0;
pid->output=0;
}
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
3.2 串級PID
3.2.1 初始化串級PID結構體
typedef struct _CascadePID
{
PID inner;//內環
PID outer;//外環
float output;//串級輸出,等於inner.output
}CascadePID;
1
2
3
4
5
6
1
2
3
4
5
6
3.2.2 串級PID計算
//串級pid計算
void PID_CascadeCalc(CascadePID *pid,float angleRef,float angleFdb,float speedFdb)
{
PID_SingleCalc(&pid->outer,angleRef,angleFdb);//計算外環(角度環)
PID_SingleCalc(&pid->inner,pid->outer.output,speedFdb);//計算內環(速度環)
pid->output=pid->inner.output;
}
1
2
3
4
5
6
7
1
2
3
4
5
6
7
4.PID的使用
STM32應用(九)編碼器及其測速原理、L298N電機驅動控制編碼器電機

在這篇博客的配置下,只需要修改部分代碼。以單級PID為例子。

4.1 定義PID結構體並初始化
PID pid;

void Motor_Init(void)
{
PID_Init(&pid,10,0,0,1000,1000);
HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_ALL); //開啟編碼器定時器
__HAL_TIM_ENABLE_IT(&htim1,TIM_IT_UPDATE); //開啟編碼器定時器更新中斷,防溢出處理
HAL_TIM_Base_Start_IT(&htim6); //開啟10ms定時器中斷
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); //開啟PWM
__HAL_TIM_SET_COUNTER(&htim1, 10000); //編碼器定時器初始值設定為10000
motor.loopNum = 0; //防溢出
}
1
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
4.2 定義電機速度函數
void Motor_Send()
{
float output = 0;
PID_SingleCalc(&pid, motor.targetSpeed, motor.speed);
output = pid.output;
if(output > 0) //正轉
{
__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, (uint32_t)output);
IN1(1);
IN2(0);
}
else //反轉
{
__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, (uint32_t)(-output));
IN1(0);
IN2(1);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
4.3 在檢測霍爾碼盤時發送速度給電機
if(htim->Instance==htim6.Instance) //10ms中斷
{
int16_t pluse = COUNTERNUM - RELOADVALUE/2;
motor.totalAngle = pluse + motor.loopNum * RELOADVALUE/2;
motor.speed = (float)(motor.totalAngle - motor.lastAngle)/(4*13*RR)*6000; //進行速度計算,根據前文所說的,4倍頻,編碼器13位,減速比30,再乘以6000即為每分鍾輸出軸多少轉
motor.lastAngle = motor.totalAngle; //更新轉過的圈數
Motor_Send();//發送速度
}

Ⅶ STM32中,systick具體延時時間怎麼計算的

systick定時器有兩個可選的時鍾源,一個是外部時鍾源(STCLK,等於HCLK/8),另一個是內核時鍾(FCLK,等於HCLK)。假若你選擇內核時鍾,並將HCLK頻率設置為72MHz的話,系統時鍾周期為1/(72M);systick有一個24位的遞減計數器,每個系統時鍾周期計數器值減一,那麼當計數器減到零時,時間經過了:系統時鍾周期*計數器初值。當你將計數器初值設為72000時(有些常式裡面設為71999,其實沒什麼影響,誤差極小),當計數器值減到0時經過了1/(72M)*72000=0.001s,即1ms。你可以看一下芯達STM32的入門教程和《ARM Cortex-M3權威指南》的相關章節,裡面關於systick編程的一章說的比較詳細,但是也有個別地方說的比較模糊,總之多看些常式就明白了,剛開始總是很糾結的~

閱讀全文

與stm觸摸屏計算器演算法相關的資料

熱點內容
方舟生存進化伺服器如何改名字 瀏覽:892
央行數字貨幣app怎麼注冊 瀏覽:431
51單片機顯示時間 瀏覽:768
我的世界網易版怎麼壓縮地圖 瀏覽:682
qq小程序雲伺服器和 瀏覽:739
方舟伺服器怎麼玩才好玩 瀏覽:557
單片機的部件 瀏覽:621
編譯原理遍的過程 瀏覽:252
python讀取json字元串 瀏覽:62
ubuntu1404安裝php 瀏覽:630
lua能編譯嗎 瀏覽:116
思仙怎麼看伺服器 瀏覽:658
php微信圖片防盜鏈 瀏覽:798
安卓1怎麼讀音 瀏覽:291
農業app怎麼開通快捷支付 瀏覽:910
pythonredisdict 瀏覽:385
如何攻擊別人網賭伺服器 瀏覽:880
隱私與應用加密的圖案密碼 瀏覽:38
陳情令王一博解壓 瀏覽:39
c編譯器使用說明 瀏覽:708