熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2017-8-20 14:59
正文摘要:為什么我的LED不閃爍,下面是程序和電路。#include "stm32f10x.h" void delay_ms(u32 ms){ u32 temp; SysTick->LOAD = 9000 * ms; //重裝初值,72MHz ... |
一般,電平高低切換之間需要加時(shí)延,才能看到閃爍的效果 |
參考一下正點(diǎn)原子的代碼吧 |
高低電平切換,并加上延時(shí)函數(shù) |
如果是只亮不閃爍的話,看看程序是不是卡在那個(gè)延時(shí)函數(shù)那里了,話說你這個(gè)系統(tǒng)時(shí)鐘8分頻了?不然為啥SysTick->LOAD = 9000 * ms; 這里是9000 |
時(shí)鐘使能要放在前面,然后配置IO |
可以看看正點(diǎn)原子的代碼,里面很詳細(xì) 。 |
那就可能是你的延時(shí)函數(shù)沒起作用或者是延時(shí)函數(shù)有問題,你的延時(shí)函數(shù)初在主函數(shù)中始化了嗎? |
高低電平切換,再加上延時(shí)就可以的 |
覺得時(shí)鐘不對(duì)![]() |
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pin) void GPIO_SetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pin)給IO口寫0寫1是這兩個(gè)函數(shù),而不是void GPIO_WriteBit(GPIO_TypeDef* GPIOx, u16 GPIO_Pin, BitAction BitVal)這個(gè),具體請(qǐng)參考STM32固件庫使用手冊(cè) |
參與人數(shù) 1 | 黑幣 +40 | 收起 理由 |
---|---|---|
![]() | + 40 | 回帖助人的獎(jiǎng)勵(lì)! |
GPIO_WriteBit(testGPIO, testGPIO?_Pin_?, Bit_RESET); 不用指定GPIO的哪一組的的第幾個(gè)引腳??? |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
hange_v 發(fā)表于 2017-8-21 08:47 不用的 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
檸檬小生 發(fā)表于 2017-8-20 22:03 只亮,不閃爍,是不是和時(shí)鐘有關(guān)SystemIni(), |
大灰狼愛喝湯 發(fā)表于 2017-8-20 23:16 我用的GPIOE,開啟了GPIOE的時(shí)鐘,難道還要開GPIOB的時(shí)鐘??? |
先把燈點(diǎn)亮再說,然后再閃爍 |
LED是只會(huì)亮但是不閃爍還是?印象中stm32是有自帶的庫函數(shù)用作延時(shí)的。你可以通過注釋其他語句來驗(yàn)證是GPIO設(shè)置問題還是延時(shí)函數(shù)的問題 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
Powered by 單片機(jī)教程網(wǎng)