ソフトウェアとハードウェアのモデル
STM32F103RCT開発ボード
STM32CUBEMX + KEIL5プログラミング
STM32F11.8.3ライブラリバージョン
1.ステアリングギアにはどのような信号が必要ですか?
- 正負の電圧信号:購入するサーボの種類によって異なります。3.3v、8.0v、各種種類があります。
- パルス幅変調信号(PWM):180°ステアリングギアの場合、通常、サイクルは20ms(周波数は50Hz)で、パルス幅(1サイクルの高レベル持続時間)は500〜2500usです。その中で、1500usはステアリングギアホイールを90°の位置として理解できる中間位置にします。500-1500usと1500-2500usの間では、0-90°と90-180°の方向に回転します。それぞれ。
2.実装手順
1.CUBE構成
ここでは、TIM2とそのチャネル2のみが構成に使用されます(チップの選択などの基本的なコンテンツは繰り返されません)。
- クロックツリーの構成
ここでは、デフォルトの周波数分割係数を変更せずに直接使用しています。必要に応じて変更するだけです。 - 水晶発振器クロックの選択
RCCをクリックして水晶発振器を
選択します
- タイマーとそのチャンネルを選択します
- 周波数分割係数などのパラメータを計算します
- ここでの周波数は8MHzです。最初に800で割ります
。8パーセントの周波数が800-1と書かれている理由がわかりません。基本的な知識を統合するために、カウンターのカウンター部分を確認することをお勧めします。 - 現在のカウンターとイベントを消費する必要がある1つは1 /(8MHz / 800)= 0.1msです。サイクルを20msにする場合は、20 / 0.1 = 200回カウントする必要があり、自動リロード値は200です。
- 今周期は20msのは、我々はあなたがハイレベルの期間が1.5ミリ秒になりたい場合は、あなたが私たちの比較値のニーズが15になるように、15回を数える必要がある、200手段が20msをカウント、パルス幅を設定する必要があり
、我々がしたい場合変更するには初期値の場合は、コード内のCCRの値を変更するだけです。
- 次に、コードをエクスポートします
2.コードの追加
main関数でPWMAddの出力を開始します。
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);
タイマー2、チャネル2のPWM出力2を開始する手段。while
ループを追加します。
TIM2->CCR2=10;
HAL_Delay(2000);
TIM2->CCR2=20;
HAL_Delay(2000);
これは、比較値を変更して出力パルス幅を1000usと2000usの間で切り替え、角度の偏向を実現することを意味します。
3.全体的な主な機能は次のとおりです。
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_TIM2_Init();
/* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
TIM2->CCR2=10;
HAL_Delay(2000);
TIM2->CCR2=21;
HAL_Delay(2000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}