欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
stm32的gpio口的介紹(交流和學(xué)習(xí))
[打印本頁]
作者:
周濤1331
時(shí)間:
2020-7-7 10:22
標(biāo)題:
stm32的gpio口的介紹(交流和學(xué)習(xí))
我最近在學(xué)stm32,想和大家分享自己的學(xué)習(xí)成果,也和大家一起學(xué)習(xí)交流。之前學(xué)習(xí)過15的庫函數(shù)的套用,經(jīng)過一段時(shí)間摸索,我對(duì)stm32的使用有了基礎(chǔ)的了解。因?yàn)榘遄硬皇钦c(diǎn)原子和野火,所以有些不同。 每個(gè)板子視頻教學(xué)第一個(gè)介紹都是stm32的gipo口的介紹,這個(gè)io口跟51的io口定義全然不同,并且能配置自身頻率,而且有些定義用到了結(jié)構(gòu)體。而且stm32是32位的單片機(jī),內(nèi)部的32位寄存器太多,很難記住,所以建議使用庫函數(shù)的辦法,先學(xué)會(huì)套用,后來在更改參數(shù)或者做一些小項(xiàng)目的時(shí)候,對(duì)一些寄存器做一些更深入的理解。
首先我們講一下gipo口void led_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //調(diào)用結(jié)構(gòu)體
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE); //定義時(shí)鐘
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //定義哪個(gè)口輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //輸出速率為50Mhz
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //定義為推挽輸出
GPIO_Init(GPIOG, &GPIO_InitStructure); //調(diào)用庫函數(shù)配置io口
GPIO_SetBits(GPIOG,GPIO_Pin_6); //置一服務(wù)
}
這個(gè)截圖你能看見這個(gè)是定義一個(gè)stm32的io口的操作過程,這個(gè)地方使用了結(jié)構(gòu)體,可以看到,這樣使調(diào)用更加明了。這里定義了
io的pa時(shí)鐘,配置的是哪一個(gè)io口,輸出速率,輸出是推挽輸出
。這些參數(shù),集合在一個(gè)函數(shù)中,使用更加明了簡(jiǎn)捷。感覺很方便。
我提供一個(gè)燈亮小燈的程序。可以參考一下,有啥問題可以一起學(xué)習(xí)。我建了個(gè)群912803408.可以交流
單片機(jī)源程序如下:
/*****
** Descriptions:配置PG6為輸出,驅(qū)動(dòng)開發(fā)板上的LED指示燈D1以200毫秒的間隔閃爍
**--------------------------------------------------------------------------------------------*/
#include "stm32f10x.h"
//delay這里報(bào)錯(cuò)的原因是:delay函數(shù)用匯編實(shí)現(xiàn)的,導(dǎo)致了MDK誤報(bào)。
#include "delay.h"
/***************************************************************************
* 描 述 : 初始化單片機(jī)控制D1的引腳PG6,并將D1的初始狀態(tài)設(shè)置為熄滅
* 參 數(shù) : 無
* 返回值 : 無
**************************************************************************/
void led_init(void)
{
//定義IO初始化配置結(jié)構(gòu)體
GPIO_InitTypeDef GPIO_InitStructure;
//打開PA端口時(shí)鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE);
//配置的IO是PG6
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
//IO口速度為50MHz
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//配置為通用推挽輸出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
//調(diào)用庫函數(shù)GPIO_Init()配置IO
GPIO_Init(GPIOG, &GPIO_InitStructure);
//設(shè)置D1初始化狀態(tài)為熄滅
GPIO_SetBits(GPIOG,GPIO_Pin_6);
}
/***************************************************************************
* 描 述 : 主函數(shù)
* 參 數(shù) : 無
* 返回值 : 無
**************************************************************************/
int main(void)
{
//初始化用于驅(qū)動(dòng)指示燈D1的引腳PG6
led_init();
//主循環(huán)
while(1)
{
//調(diào)用庫函數(shù)GPIO_ResetBits()驅(qū)動(dòng)LED指示燈D1的引腳(PG6)輸出低電平,即點(diǎn)亮D1
GPIO_ResetBits(GPIOG,GPIO_Pin_6);
//軟件延時(shí)200ms
sw_delay_ms(200);
//調(diào)用庫函數(shù)GPIO_SetBits()驅(qū)動(dòng)LED指示燈D1的引腳(PG6)輸出高電平,即熄滅D1
GPIO_SetBits(GPIOG,GPIO_Pin_6);
//軟件延時(shí)200ms
sw_delay_ms(200);
}
}
/********************************************END FILE********************/
復(fù)制代碼
所有資料51hei提供下載:
led.7z
(192.91 KB, 下載次數(shù): 6)
2020-7-7 19:19 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1