1.修改工程目錄 (個人習慣)
源文檔是這樣目錄



整改后的目錄

2.使用的工具 keil 作為編譯器 vscode 作為瀏覽和編輯器
3.軟件工程分析

4.工程文件分析
1)BLDC-MOTOR文件夾里面
①compu采樣文件
// 用于采集速度樣本數據
void SampleSpeed(void);
// 用于采集開環電流相關樣本數據
void SampleOI(void);
// 用于采集電流樣本數據
void SampleI(void);
// :用于采集電壓樣本數據
void SampleV(void);
②control控制文件
void MotorStartCheck(void);
// 控制電機啟動前的延時(如軟啟動、防止瞬時電流過大)
void MotorStartDealy(void);
// 執行電機開環啟動操作(如PWM輸出、繼電器吸合等)
void MotorStartOPEN(void);
// 電機運行 開環 :維持電機正常運行(如速度調節、電流控制等)
void MotorRunOPEN(void);
// 控制電機停止(如關閉PWM、剎車、自由停車等)
void MotorStop(void);
// 檢測到電機異常(如過流、堵轉、溫度過高)時執行
void MotorError(void);
// 當錯誤超過閾值(如多次重啟失敗)時執行保護動作
void MotorErrorOver(void);
// 等待啟動條件 : 信號(如按鍵、通信指令)以允許電機啟動
void WaitStart(void);
// EN 檢查電機使能信號是否有效(如硬件使能引腳狀態)
void ENCheck(void);
③global.參數文件 各種參數的初始化 和系數校準


④init初始化文件
以名字為準顧名思義就是各種初始化包含主控內部rcciogpio電機pwmadc等操作
⑤MOTOR 電機文件
void PWMtimer_init(void);// PWM 定時器初始化函數 設置 PWM 頻率、占空比、死區時間等
void Halltimer_init(void);//霍爾傳感器定時器初始化 計算轉速/位置
void Commutation(unsigned int step,unsigned int PWM_ON_flag);//電機換相控制函數
void UPPWM(void);// 更新 PWM 占空比函數
unsigned char HALL_Check(void);// 霍爾信號檢測函數
void Hall_init(void);// 霍爾傳感器初始化函數 感覺這個應該在霍爾函數里面吧
void HALL_MOTOR_START(void);// 霍爾啟動電機函數
void MOTOR_STOP0(void);// 電機制動/停止函數
⑥sensorless傳感器文件 現在這個應該就是無感里面的反電動勢輸入初始化了
extern void SENSORLESS_TIM_Config(void);///定時器初始化函數好像不用加全局聲明吧?
extern unsigned char Sensorless_START(void);//傳感器啟動
2)USER文件夾里面之后主函數文件還有cw的中斷文件以及啟動文件
我添加了一些注釋進去
循環之前的初始化部分
初始化電位器的斜率
初始化相關外設
檢測電流偏執
上電檢測電位器是否歸零

20mS采集一次速度設定值,并檢查傳感器
開環電流檢測

每100ms做一次電流檢測和電壓檢測做做一次速度計算

故障判斷是實時判斷的這個優先級最高了

接下來是任務調度包含啟動開環啟動閉環啟動開環轉閉環轉停止模式剎車模式錯誤模式

中斷函數計時器任務函數時間調度就是用來各個任務調度的時間的恩

審核編輯 黃宇
-
電機驅動
+關注
關注
60文章
1480瀏覽量
89646 -
CW32
+關注
關注
1文章
323瀏覽量
1938
發布評論請先 登錄
CW32L011開發支持
CW32生態社區開發板二三事兒
CW32L011電機驅動控制開發板-軟件
評論