標題: STM32新手的端口配置嘗試—點亮D2端口小燈 [打印本頁]
作者: 時代の虛言 時間: 2019-3-20 13:43
標題: STM32新手的端口配置嘗試—點亮D2端口小燈
今日,我學習了如何配置GPIO端口,并讓我做一段點亮開發板D2端口小燈的程序。
具體程序如下:
//#define STM32F10X_HD
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
//io口初始化
void GPIO_INITCFG(void)
{
GPIO_InitTypeDef GPIO_InitVar;
GPIO_InitVar.GPIO_Pin=GPIO_Pin_2;
GPIO_InitVar.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitVar.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOD,&GPIO_InitVar);
}
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_INITCFG();
while(1)//D2light
{
GPIO_SetBits(GPIOD,GPIO_Pin_2);//置一亮
}
return 0;
}
程序的具體含義為:
void GPIO_INITCFG(void)
{
GPIO_InitTypeDef GPIO_InitVar;
GPIO_InitVar.GPIO_Pin=GPIO_Pin_2;
GPIO_InitVar.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitVar.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOD,&GPIO_InitVar);
}
這段程序是一個結構體,功能是配置GPIO的D2端口,以50MHz的速度進行推挽輸出。
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
這句程序控制D端口的時鐘,使其能夠由STM32芯片控制。
2、GPIO_INITCFG();
這句程序作用是聲明結構體,使其有意義。注:只有在主程序中聲明的函數,才能正常運行。
3、 while(1)//D2light
{
GPIO_SetBits(GPIOD,GPIO_Pin_2);//置一亮
}
這段程序執行點亮D2端口小燈的操作。
將程序編譯后下載,結果如下:
在編譯過程中,遇到了如下錯誤:
Error: L6218E: Undefined symbol assert_param (referred from stm32f10x_gpio.o).
解決方法為:在Options->C/C++->preprocessor Symboles有Define:項中輸入USE_STDPERIPH_DRIVER,重新編譯鏈接,無警告無錯誤。如圖:
具體圖片和過程中遇到的難點可看附件!!!
完整的Word格式文檔51黑下載地址:
點亮開發板D2端口的小燈.doc
(2.83 MB, 下載次數: 7)
2019-3-20 13:42 上傳
點擊文件名下載附件
有具體結果
下載積分: 黑幣 -5
| 歡迎光臨 (http://www.denmoz.com/bbs/) |
Powered by Discuz! X3.1 |