rt-thread 脉冲编码器测量电机转速
rt-thread 4.1.0 +?rt-thread studio 2.2.4 + STM32CubeMX6.5.0
WeAct STM32F411CEU6最小系統開發板
1、電機編碼器電路連接:
該電機使用TIM3作為編碼編碼器
2、CubeMX配置TIM3編碼器:
根據電路圖在CubeMX中配置TIM3 Encoder Mode?
?將生成的代碼中如下兩個函數拷貝到board.c中
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder)
void MX_TIM3_Init(void)
拷貝后,刪除void MX_TIM3_Init(void)前的static
3、rt-thread studio中配置
3.1 rt-thread setting中開啟脈沖編碼器驅動
在rt-thread setting中組件->設備驅動程序 下開啟使用脈沖編碼器設備驅動程序
3.2 在board.h中增加脈沖編碼器宏定義。
需要特別說明的是,board.h中默認沒有PULSE_ENCODER部分的模板,需完全手工添加。
3.3 開啟HAL_TIM_MODULE_ENABLED?
在stm32f411xx_hal_conf.h中開啟HAL_TIM_MODULE_ENABLED
?完成上述步驟后,目前的版本并不會自然帶出PULSE_ENCODER的驅動文件drv_pulse_encoder.c。而類似的添加其它外設的驅動時,比如SPI,PWM等,軟件則可以自動帶出相應的驅動文件。因此,需手動添加驅動文件drv_pulse_encoder.c
3.4 添加驅動文件drv_pulse_encoder.c
下載rt-thread源碼,將源碼中rt-thread\bsp\stm32\libraries\HAL_Drivers路徑下的drv_pulse_encoder.c文件,復制到Studio生成項目的drivers目錄下。正確復制后,如下:
?修改上面復制的drv_pulse_encoder.c文件,將rtdevice.h頭文件包含進去,如下圖。否則編譯會出錯
4、查看編碼器設備?
完成上速步驟后編譯,可查看到脈沖編碼器設備
5、用脈沖編碼器測試電機轉速?
參考官網脈沖編碼器的示例代碼,可獲得電機的轉速:
總結
以上是生活随笔為你收集整理的rt-thread 脉冲编码器测量电机转速的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux一键搭建ddns,linux
- 下一篇: 乘法逆元及其求法