|
本帖最后由 zhou__mi 于 2020-6-22 19:12 編輯
《嵌入式系統原理與實踐--基于Cortex-M3(STM32)》教材1.jpg (67.95 KB, 下載次數: 22)
下載附件
2018-11-18 13:49 上傳
程序代碼:
// 實驗程序分為3個部分或者說3個步驟:
//(1)RCC_Configuration 函數使能外設GPIO PORTC時鐘;
//(2)GPIO_Configuration函數設置PC6為50MHz推挽輸出;
//(3)GPIO_ResetBits庫函數設置PC6輸出低電平0,熄滅與PC6連接的LED1,
// GPIO_SetBits 庫函數設置PC6輸出高電平1,點亮與PC6連接的LED1。
/***************************************************************************
* File Name : main.c
* Author : Zhou_yinxiang, 1881003@qq.com,CDUESTC
* Date First Issued : 03/08/2014
* Description : 點亮 或 熄滅 與PC6連接的LED1
使用ST的庫函數,MDK4.7,最簡RCC配置,在AS-05(STM32-SS),AS-07,PROTEUS上驗證通過
****************************************************************************/
/* Includes ---------------------------------------------------------------*/
#include "stm32f10x_lib.h"//包含頭文件
/* Private function prototypes --------------------------------------------*/
void RCC_Configuration(void);//函數聲明
void GPIO_Configuration(void);//函數聲明
/* Private functions ------------------------------------------------------*/
/***************************************************************************
* Function Name : main
* Description : Main program.
* Input : None
* Output : None
* Return : None
****************************************************************************/
int main(void)//main函數,在STM32F10x.s里,設置IMPORT __main為程序的入口
{
/* Configure the system clocks */
RCC_Configuration();//調用設置系統時鐘函數
/* Configure the GPIO ports */
GPIO_Configuration();//調用設置GPIO端口函數
while(1)
{
//GPIO_ResetBits(GPIOC, GPIO_Pin_6); //PC6輸出低電平,熄滅LED1
GPIO_SetBits(GPIOC, GPIO_Pin_6); //PC6輸出高電平,點亮LED1
}
}
/***************************************************************************
* Function Name : RCC_Configuration
* Description : Configures the different system clocks.
* Input : None
* Output : None
* Return : None
***************************************************************************/
void RCC_Configuration(void)//設置系統時鐘函數
{
/* Enable GPIOA clocks */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//使能GPIOC的時鐘
}
/**************************************************************************
* Function Name : GPIO_Configuration
* Description : Configures the different GPIO ports.
* Input : None
* Output : None
* Return : None
***************************************************************************/
void GPIO_Configuration(void)//設置GPIO端口函數
{
GPIO_InitTypeDef GPIO_InitStructure;//GPIO_InitStructure是GPIO_InitTypeDef結構體
/* Configure PC6 as Output push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;//結構體成員GPIO_Pin賦值
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//結構體成員GPIO_Speed賦值
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//結構體成員GPIO_Mode賦值
GPIO_Init(GPIOC, &GPIO_InitStructure);//按照上面賦值的結構體初始化GPIOC端口,
//就是設置PC6為速度是50MHz的推挽(推拉)輸出工作模式
}
/**************** (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/
|
|