定时器2+串口发送
#include “STM32Lib\\stm32f10x.h” void USART_Configuration(void) //使能串口1,PA,AFIO总线 /* A9 USART1_Tx */ /* A10 USART1_Rx */ USART_InitStructure.USART_BaudRate = 9600; USART_ClockInitStructure.USART_Clock = USART_Clock_Disable; USART_ClockInit(USART1, &USART_ClockInitStructure); //使能串口2时钟 // A2 做T2X // A3 做R2X USART_InitStructure.USART_BaudRate = 9600; USART_ClockInitStructure.USART_Clock = USART_Clock_Disable; USART_ClockInit(USART2, &USART_ClockInitStructure); USART_Cmd(USART2, ENABLE); void USART1_Putc(unsigned char c) void USART1_Puts(char * str) void USART2_Putc(unsigned char c) void USART2_Puts(char * str) } |
#ifndef HAL_H //硬件初始化 //输出宏界说 #define LED2_OFF GPIO_ResetBits(GPIOA, GPIO_Pin_7) #define LED3_OFF GPIO_ResetBits(GPIOC, GPIO_Pin_7) #define LED4_OFF GPIO_ResetBits(GPIOC, GPIO_Pin_5) #define LED5_OFF GPIO_ResetBits(GPIOB, GPIO_Pin_9) #define LED6_OFF GPIO_ResetBits(GPIOB, GPIO_Pin_8) #define LED7_OFF GPIO_ResetBits(GPIOB, GPIO_Pin_5) #define LED8_OFF GPIO_ResetBits(GPIOB, GPIO_Pin_0) //串口 extern u8 flag; #endif |
#include “STM32Lib\\stm32f10x.h” void TIM_Configuration(void) /* TIM2 clock enable */ /* 根底设置*/ TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); /* 比较通道1*/ TIM_OC1Init(TIM2, &TIM_OCInitStructure); /*比较通道2 */ TIM_OC2Init(TIM2, &TIM_OCInitStructure); /* 比较通道3 */ TIM_OC3Init(TIM2, &TIM_OCInitStructure); /* 比较通道4 */ TIM_OC4Init(TIM2, &TIM_OCInitStructure); /*使能预装载*/ /* 4个通道和溢出都装备中止*/ /* 答应TIM2开端计数 */ |
#include “STM32Lib\\stm32f10x.h” void NVIC_Configuration(void) /* Configure one bit for preemption priority */ /* Timer2中止*/ /*UART1*/ |
#include “STM32Lib\\stm32f10x.h” /*答应总线CLOCK,在运用GPIO之前有必要答应相应端的时钟. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); /*初始化LED输出为0*/ /* PB0,5,8,9输出 */ /* PC5,7输出*/ /*PA7,输出*/ /*PA8,输出*/ } |
hal.c
/*************************************************** #include “STM32Lib\\stm32f10x.h” //各个内部硬件模块的装备函数 //初始化GPIO //初始化中止源 //初始化串口 //初始化定时器 /********************************* } |
stm32f10x_it.c
/******************************************************************************* extern u32 count=0; if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET) //点亮LED5// } //点亮LED6// // 点亮LED7// //点亮LED8// } LED5_OFF; /******************************************************************************* /******************************************************************************* /******************************************************************************* /******************************************************************************* /******************************************************************************* /******************************************************************************* /******************************************************************************* /******************************************************************************* /******************************************************************************* void USART1_IRQHandler(void) //溢出-假如发生溢出需求先读SR,再读DR寄存器 则可铲除不断入中止的问题 |
main.c
/************************************************************ #include “STM32Lib\\stm32f10x.h” void d_2_char(u32 x) ChipHalInit(); //片内硬件初始化 for(;;) } } //推迟函数 |
RCC.c
#include “STM32Lib\\stm32f10x.h” RCC_ClocksTypeDef RCC_ClockFreq; void RCC_Configuration(void) /************************************************** /* 这个装备可使外部晶振停振的时分,发生一个NMI中止,不需求用的可屏蔽掉*/ |
管理员在2009年8月13日修改了该文章文章。 –>