試驗一 基本I O口功能設計

2021-07-09 02:07:38 字數 727 閱讀 9961

硬體資源:atmega8開發板,led燈,按鍵,步進電機。

要實現功能:1,跑馬燈;2,按鍵控制跑馬燈(按一次亮燈走一位);3,驅動步進電機

程式設計:1,初始化引腳,用time0計數器設計延時程式

//io埠初始化

void port_init()

//延時函式 t/c0來計數

void delay_us(int us)  // ~和!是不一樣的,判斷時用「!」,取反時用「~ 」

tifr |= 1;

}void delay_ms(int ms)}}

2,//跑馬燈程式

void led()

}3,//按鍵掃瞄函式

uchar key_scan()

else  

}//按鍵功能函式

char val;    // 必須是全域性變數!!!!!

void key_led()

else

}else

//delay_ms(10);

portd = ~(0x01<4,//驅動電機函式

unsigned char ccw[8]=;  //逆時鐘旋轉相序表

unsigned char cw[8]=;   //正時鐘旋轉相序表

void stepmotor(uchar dir,int speed)

}else }}

5,//主函式

void main()

}

STM32 中JTAG 引腳作為普通IO口設定方法

第一次畫stm32 的pcb 因為採用了swd 除錯,認為jtag的引腳pb3,pb4,沒有用到就做了普通io口,麻煩從此引起了。設定pb3,pb4均為輸出口,且輸出高電平,用萬用表測量,pb4為高,pb3不是高電平,在看mdk 中的暫存器值,pb3,pb4都是高啊?暫存器的值怎麼和實際的值不一樣了...

STM32 中JTAG 引腳作為普通IO口設定方法

看上面的資料手冊,可以知道一般的io口,其預設功能就是io口。可是pb3 pb4 pa13 pa14 pa15這幾個io口的預設功能是jtag功能,io口功能反而是他們的重對映功能。因此要把他們作為普通io口使用,要把他們的重對映功能開啟。只需要把pb3,pb4,pa15當成io使用,設定 rcc ...

STM32 中JTAG 引腳作為普通IO口設定方法

第一次畫stm32 的pcb 因為採用了swd 除錯,認為jtag的引腳pb3,pb4,沒有用到就做了普通io口,麻煩從此引起了。設定pb3,pb4均為輸出口,且輸出高電平,用萬用表測量,pb4為高,pb3不是高電平,在看mdk 中的暫存器值,pb3,pb4都是高啊?暫存器的值怎麼和實際的值不一樣了...