|
項(xiàng)目需要控制多個(gè)步進(jìn)電機(jī), 我的想法是使用結(jié)構(gòu)體來做多個(gè)步進(jìn)電機(jī)的獨(dú)立控制, 把控制函數(shù)的函數(shù)指針放在結(jié)構(gòu)體中調(diào)用.在實(shí)際測(cè)試的時(shí)候發(fā)現(xiàn)這種方式(結(jié)構(gòu)體)調(diào)用步進(jìn)電機(jī)的函數(shù)沒有反應(yīng), 不起作用(電機(jī)不轉(zhuǎn))
C語(yǔ)言代碼大概如下- //為閱讀方便, 將所有函數(shù)參數(shù)使用arg代替
- //*****************************main.c
- //嘗試在main.c中控制步進(jìn)電機(jī)
- #include "Stepper.h"
- void main(){
- Stepper stp;
- while(1){
- //如果使用 "MotorClockwise(arg); "則電機(jī)正常工作
- stp.MotorAntiClockwise(arg); //電機(jī)不工作
- }
- }
- //***************************Stepper.h
- //定義了結(jié)構(gòu)體
- extern void MotorAntiClockwise(arg);
- extern void MotorClockwise(arg);
- extern void MotorSetAngle(arg);
- typedef struct
- {
- void (*MotorAntiClockwise)(arg);
- void (*MotorClockwise)(arg);
- void (*MotorSetAngle)(arg);
- }Stepper;
- //***************************Stepper.c
- void MotorAntiClockwise(arg){
- //code
- }
- void MotorClockwise(arg){
- //code
- }
- void MotorSetAngle(arg){
- //code
- }
復(fù)制代碼 求教大佬出現(xiàn)了什么錯(cuò)誤? 應(yīng)該如何解決?
非常感謝您的回復(fù)!
|
|