找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3957|回復: 17
打印 上一主題 下一主題
收起左側

STM32最基本問題,點亮LED。

  [復制鏈接]
跳轉到指定樓層
樓主
ID:190832 發(fā)表于 2017-8-20 14:59 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
為什么我的LED不閃爍,下面是程序和電路。#include "stm32f10x.h"
void delay_ms(u32 ms){
  u32 temp;
        SysTick->LOAD = 9000 * ms;  //重裝初值,72MHz時
        SysTick->CTRL = 0x01;  //使能,減到0無動作,采用外部時鐘
        SysTick->VAL = 0;  //清零計數(shù)器
        do{
          temp = SysTick->CTRL;  //讀取當前倒計數(shù)數(shù)值
        }while((temp & 0x01) && (!(temp & (1 << 16))));  //等待時間到達
        SysTick->CTRL = 0;  //關閉計數(shù)器
        SysTick->VAL = 0;  //清空計數(shù)器
}

void testGPIO_Config(void){
  GPIO_InitTypeDef GPIO_InitStructure;
       
        GPIO_InitStructure.GPIO_Pin = testGPIO_Pin;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
       
        GPIO_Init(testGPIO, &GPIO_InitStructure);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
}

int main(void){
        SystemInit();
        //SysTick
        testGPIO_Config();
        while(1){
        GPIO_WriteBit(testGPIO, testGPIO_Pin, Bit_RESET);
        delay_ms(1000);
        GPIO_WriteBit(testGPIO, testGPIO_Pin, Bit_SET);
        delay_ms(1000);
        }
  //return 0;
}


(_C~L]SC)(ZD2C43%A$0DL1.png (11.92 KB, 下載次數(shù): 90)

(_C~L]SC)(ZD2C43%A$0DL1.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:201102 發(fā)表于 2017-8-20 22:03 | 只看該作者
LED是只會亮但是不閃爍還是?印象中stm32是有自帶的庫函數(shù)用作延時的。你可以通過注釋其他語句來驗證是GPIO設置問題還是延時函數(shù)的問題

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:220961 發(fā)表于 2017-8-20 23:16 | 只看該作者
你GPIOB的時鐘掛上去了?

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:219796 發(fā)表于 2017-8-21 04:52 來自觸屏版 | 只看該作者
先把燈點亮再說,然后再閃爍
回復

使用道具 舉報

5#
ID:190832 發(fā)表于 2017-8-21 08:47 | 只看該作者
大灰狼愛喝湯 發(fā)表于 2017-8-20 23:16
你GPIOB的時鐘掛上去了?

我用的GPIOE,開啟了GPIOE的時鐘,難道還要開GPIOB的時鐘???
回復

使用道具 舉報

6#
ID:190832 發(fā)表于 2017-8-21 08:54 | 只看該作者
檸檬小生 發(fā)表于 2017-8-20 22:03
LED是只會亮但是不閃爍還是?印象中stm32是有自帶的庫函數(shù)用作延時的。你可以通過注釋其他語句來驗證是GPIO ...

只亮,不閃爍,是不是和時鐘有關SystemIni(),
回復

使用道具 舉報

7#
ID:219447 發(fā)表于 2017-8-21 09:19 | 只看該作者
hange_v 發(fā)表于 2017-8-21 08:47
我用的GPIOE,開啟了GPIOE的時鐘,難道還要開GPIOB的時鐘???

不用的

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

8#
ID:58925 發(fā)表于 2017-8-24 15:09 | 只看該作者
GPIO_WriteBit(testGPIO, testGPIO?_Pin_?, Bit_RESET);
        不用指定GPIO的哪一組的的第幾個引腳???

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

9#
ID:230901 發(fā)表于 2017-9-8 14:31 | 只看該作者
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pin)     void GPIO_SetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pin)給IO口寫0寫1是這兩個函數(shù),而不是void GPIO_WriteBit(GPIO_TypeDef* GPIOx, u16 GPIO_Pin, BitAction BitVal)這個,具體請參考STM32固件庫使用手冊

評分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

10#
ID:219447 發(fā)表于 2018-9-13 18:37 | 只看該作者
覺得時鐘不對
回復

使用道具 舉報

11#
ID:397544 發(fā)表于 2018-9-15 11:17 | 只看該作者
高低電平切換,再加上延時就可以的
回復

使用道具 舉報

12#
ID:229016 發(fā)表于 2018-9-16 11:10 | 只看該作者
那就可能是你的延時函數(shù)沒起作用或者是延時函數(shù)有問題,你的延時函數(shù)初在主函數(shù)中始化了嗎?
回復

使用道具 舉報

13#
ID:399516 發(fā)表于 2018-9-18 14:45 | 只看該作者
可以看看正點原子的代碼,里面很詳細 。
回復

使用道具 舉報

14#
ID:400380 發(fā)表于 2018-9-20 09:18 | 只看該作者
時鐘使能要放在前面,然后配置IO
回復

使用道具 舉報

15#
ID:368746 發(fā)表于 2018-9-20 12:00 | 只看該作者
如果是只亮不閃爍的話,看看程序是不是卡在那個延時函數(shù)那里了,話說你這個系統(tǒng)時鐘8分頻了?不然為啥SysTick->LOAD = 9000 * ms;  這里是9000
回復

使用道具 舉報

16#
ID:400555 發(fā)表于 2018-9-20 15:24 | 只看該作者
高低電平切換,并加上延時函數(shù)
回復

使用道具 舉報

17#
ID:394885 發(fā)表于 2018-9-20 16:42 | 只看該作者
參考一下正點原子的代碼吧
回復

使用道具 舉報

18#
ID:400642 發(fā)表于 2018-9-20 17:28 | 只看該作者
一般,電平高低切換之間需要加時延,才能看到閃爍的效果
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表