基本信息
源码名称:火牛跑马灯实验(火牛开发板-UGPIO)
源码大小:3.63M
文件格式:.rar
开发语言:C/C++
更新时间:2019-03-24
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
/************************************************************** ** 火牛开发板 ** UGPIO测试 ** 版本:V1.0 ** 论坛:www.poweravr.com ** 淘宝:www.openmcu.com ** 技术支持群:121939788 ***************************************************************/ #include "stm32f10x.h" #include "GLCD.h" #include "USART.h" void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; /* Configure IO connected to LD1, LD2, LD3 and LD4 leds *********************/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); /* Configure IO connected to BeeP */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); /* Configure USART1 Tx (PA.09) as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Configure USART1 Rx (PA.10) as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); } //系统中断管理 void NVIC_Configuration(void) { /* Configure the NVIC Preemption Priority Bits */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); #ifdef VECT_TAB_RAM /* Set the Vector Table base location at 0x20000000 */ NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); #else /* VECT_TAB_FLASH */ /* Set the Vector Table base location at 0x08000000 */ NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); #endif } //配置系统时钟,使能各外设时钟 void RCC_Configuration(void) { SystemInit(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC |RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE |RCC_APB2Periph_ADC1 | RCC_APB2Periph_AFIO |RCC_APB2Periph_SPI1, ENABLE ); // RCC_APB2PeriphClockCmd(RCC_APB2Periph_ALL ,ENABLE ); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4 |RCC_APB1Periph_USART3|RCC_APB1Periph_TIM2 , ENABLE ); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); } void InitDis(void) { /* LCD Module init */ GLCD_init(); GLCD_clear(White); GLCD_setTextColor(Blue); GLCD_displayStringLn(Line1, " FireBull"); GLCD_displayStringLn(Line2, " GPIO example"); GLCD_setTextColor(Red); } //配置所有外设 void Init_All_Periph(void) { RCC_Configuration(); InitDis(); GPIO_Configuration(); NVIC_Configuration(); USART1_Configuration(); USART1Write((u8*)" FireBull GPIO_example",sizeof(" FireBull GPIO_example")); } void Delay(vu32 nCount) { for(; nCount != 0; nCount--); } int main(void) { Init_All_Periph(); while(1) { /* Turn on LD2 and LD3 */ GPIO_SetBits(GPIOD, GPIO_Pin_8); /* Turn off LD1 */ GPIO_ResetBits(GPIOD, GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11); /* Insert delay */ Delay(0xEFFFF); /* Turn on LD2 and LD3 */ GPIO_SetBits(GPIOD, GPIO_Pin_9); /* Turn off LD1 */ GPIO_ResetBits(GPIOD, GPIO_Pin_8 | GPIO_Pin_10 | GPIO_Pin_11); /* Insert delay */ Delay(0xEFFFF); /* Turn on LD4 */ GPIO_SetBits(GPIOD, GPIO_Pin_10); /* Turn off LD2 and LD3 */ GPIO_ResetBits(GPIOD, GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_11); /* Insert delay */ Delay(0xEFFFF); /* Turn on LD4 */ GPIO_SetBits(GPIOD, GPIO_Pin_11); /* Turn off LD2 and LD3 */ GPIO_ResetBits(GPIOD, GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10); /* Insert delay */ Delay(0xEFFFF); GPIO_ResetBits(GPIOD, GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10); } }