欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32點個燈

[復制鏈接]
跳轉到指定樓層
樓主
ID:317581 發表于 2018-4-27 09:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

首先來看看最簡單的點亮一個燈的實驗你把,實驗要求點亮一個燈并隔段時間熄滅,如此一直循環:

其實實現點亮一個燈和學習51單片機時是一樣的,都是把某個管腳置高電平或置低電平,只不過過程有些不一樣,它把好多函數放在了庫里,我們只需調用那些函數,再進行設置就可以。

程序的思路如下:

1、首先需要設置的是時鐘:你將燈的管腳連在哪個端口的某個引腳上面,你就開啟哪個端口的時鐘,比如燈連在A端口的某個引腳,就要開啟A端口的時鐘。

2、其次,設置管腳: 我們需要對GPIO進行初始化設置,我們只需調用 GPIO_InitTypeDef的結構體,對每個成員進行設置,要設置的有PIN管腳的位置GPIO_Pin,還有管腳的速率GPIO_Speed,還有管腳的工作狀態GPIO_Mode,最后在調用一下初始化的函數GPIO_Init,

3、然后就開始寫我們的主函數:假如我想讓led燈的管腳置為高電平,我只需調用GPIO_SetBits函數,它是將管腳置為高電平,若想置為低電平則調用GPIO_ResetBits函數就可以。

4、最后我們要讓它一閃一滅循環當然需要延時,所以我們還需寫一個延時函數,這個和51單片機一樣就不用多說了,如果僅僅讓一個燈亮,就不需要延時了。

上面所提到的函數里面的參數設置請參考STM32固件庫手冊。
STM32固件庫手冊

下面舉個例子:

要求led燈管腳在PA.1管腳上,實現一閃一滅。

#include "stm32f10x_lib.h"//頭文件void LED_Init(void){    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //開 GPIOA 時鐘    GPIO_InitTypeDef GPIO_InitStructure;    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;//設置led燈連在第二個管腳    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //GPIO的工作狀態為推挽輸出    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // GPIO的速率最高輸出速率 50Hz    GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化 GPIOA}void Delay(vu32 nCount) //延時函數,不解釋{     for(; nCount != 0; nCount--);}main(){    LED_Init();    while(1)    {           GPIO_SetBits(GPIOA, GPIO_Pin_1);//將 GPIO的A端口第二個管腳置為高電平,即PA.1=1;        Delay(0x8ffff);        GPIO_ResetBits(GPIOA, GPIO_Pin_1);//將 GPIO的 A端口第二個管腳置為低電平,即PA.1=0;        Delay(0x8ffff);    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

好了,已經OK了,下面就可以將程序下載到開發板上面去試了,就到這里吧。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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