|
本帖最后由 zhou__mi 于 2020-6-22 19:06 編輯
《嵌入式系統原理與實踐--基于Cortex-M3(STM32)》教材1.jpg (67.95 KB, 下載次數: 60)
下載附件
2018-11-18 13:59 上傳
程序代碼:
//Pass at PROTEUS 8.7,ZhouMi,1881003@qq.com,20181118,11:52
//實驗內容和現象:
//(1)配置完整RCC,使能GPIOC、GPIOE和AFIO的時鐘的時鐘;
//(2)配置NVIC:優先組NVIC_PriorityGroup_1為1,占先式PreemptionPriority為0,副優先SubPriority為0;
//(3)設置端口位PA5(聯接KEY1)為GPIO_Mode_IN_FLOATING、PC6(聯接LED1)為GPIO_Mode_Out_PP 50MHz;
//(4)LCD顯示實驗信息,沒有學習LCD之前,請忽略;
//(5)配置EXTI:與PA5聯接的KEY1中斷為EXTI_Line5。
//(6)在stm32f10x_it.c里,配置EXTI9_5_IRQHandler,發生中斷時將PC6輸出取反驅動LED1指示中斷發生了。
//(7)下載運行程序,按下KEY1觸發中斷EXTI_Line5,LED1指示中斷發生了。
// 說明:程序源于STM3210E-EVAL,請看本project的readme.txt
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
* File Name : main.c
* Author : MCD Application Team
* Version : V2.0.1
* Date : 06/13/2008
* Description : Main program body
********************************************************************************
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_lib.h"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
static vu32 TimingDelay = 0;
EXTI_InitTypeDef EXTI_InitStructure;
ErrorStatus HSEStartUpStatus;
/* Private function prototypes -----------------------------------------------*/
void RCC_Configuration(void);
void GPIO_Configuration(void);
void NVIC_Configuration(void);
void SysTick_Config(void);
void Delay(u32 nCount);
void Decrement_TimingDelay(void);
/* Private functions ---------------------------------------------------------*/
/*******************************************************************************
* Function Name : main
* Description : Main program.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
int main(void)
{
#ifdef DEBUG
debug();
#endif
/* System Clocks Configuration */
RCC_Configuration(); //(1)調用RCC設置函數
/* NVIC configuration */
NVIC_Configuration(); //(2)調用NVIC設置函數
/* Configure the GPIO ports */
GPIO_Configuration(); //(3)調用GPIO設置函數
/* Connect KEY1 Button EXTI Line to Key Button GPIO Pin */
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource5); //(4)PA5設置為EXTI5
/* Configure KEY1 Button EXTI Line to generate an interrupt on falling edge */
EXTI_InitStructure.EXTI_Line = EXTI_Line5; //EXTI中斷線是EXTI_Line5
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //EXTI中斷模式是中斷(另外一種是事件)
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //EXTI觸發方式是下降沿
EXTI_InitStructure.EXTI_LineCmd = ENABLE; //使用EXTI
EXTI_Init(&EXTI_InitStructure); //(5)初始化EXTI
/* Generate software interrupt: simulate a falling edge applied on KEY1 Button EXTI line */
EXTI_GenerateSWInterrupt(EXTI_Line5); //產生一個軟件中斷
while (1) //等待中斷發生
{
}
}
/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
工程見附件
|
-
-
實驗4-5 EXTI.rar
2018-11-18 14:00 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1.43 MB, 下載次數: 5, 下載積分: 黑幣 -5
|