![]() |
發布時間: 2022-11-29 11:15
正文摘要:51單片機芯片有一個GPIO口,上拉正常3.3V,下拉正常0V,但是如果先上拉,延時1ms,再下拉,再延時1ms,就是這樣:while(1) {P0_0 = 0; Delay_ms(1); P0_0 = 1; Delay_ms(1); } ... |
這種東西要結合硬件電路才能分析,單單給出一段程序,是不能精準分析原因的。 |
這個很明顯是驅動能力不夠,有三角波輸出證明IO輸出正常,現在連1變0都緩慢就不是IO設置的問題了,明顯是驅動能力不夠,很可能是IO接了一個大于104的電容造成。 |
驅動能力不夠,可以加達林頓管試試 |
即使是最古老的8031,在ms級別的延時下也不可能是這樣的波形,除非后級負載有問題,假如是STC單片機,直接設置為推挽輸出,應該是可以解決問題的。 |
型號也沒有說明白,怎么幫你 |
電路和用詞問題,看代碼并不是上拉,下拉,只是置高,置低而已,上拉,下拉是電路名詞,代碼是P0口,估計外部電路沒接上下拉電阻或引腳內部沒設置對 |
該上的沒上去,該下的沒下去,也就是上升下降時間過長(斜率過小),就體現出這個IO口的驅動能力不足。如果把延時調長,應該就能上去也能下來了。如果你配置IO不是推挽輸出的話,可以配置成推挽輸出試試。 |
分析問題,不單是代碼,還要給出硬件電路原理圖. |
驅動能力問題,硬件有沒有電阻上拉 3V3? |
頂一下 |