新手上路
- 积分
- 49
- 金钱
- 49
- 注册时间
- 2014-3-23
- 在线时间
- 2 小时
|

楼主 |
发表于 2014-5-12 17:56:15
|
显示全部楼层
回复【5楼】Badu_Space:
---------------------------------
*Include---------------------------*/
#include"stm32f10x_lib.h" //°ü???ù?????·????
#include<stdio.h>
//----------------?????ù?÷--------------------
void Delay_MS(u16 dly);
void RCC_Configuration(void);
void GPIO_Configuration(void);
void USART1_Configuration(void);
void SysTick_Configuration(void);
/*******************************************************************************
* Function Name: putc
* Description : ??printf?????ó??USART1
* Input : ch,f
* Output : None
* Return : ch
*******************************************************************************/
int putc(int ch,FILE *f)
{
USART_SendData(USART1,ch);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET);
return ch;
}
/*******************************************************************************
* Function Name: main
* Description : Main program.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
int main(void)
{
u8 min,sec;
#ifdef DEBUG
debug();
#endif
//------------??????------------
RCC_Configuration();
GPIO_Configuration();
USART1_Configuration();
SysTick_Configuration();
while(1)
{
FlagStatus Status;
Status = SysTick_GetFlagStatus(SysTick_FLAG_COUNT);
if(Status == RESET)
{
}
else
{
sec++;
if(sec==60)
sec=0;
USART_SendData(USART1,sec);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET);
printf("%d",sec);
}
// printf("%d",sec);
// Delay_MS(2000);
}
}
/*******************************************************************************
* Function Name: Delay_Ms
* Description : delay 1 ms.
* Input : dly (ms)
* Output : None
* Return : None
*******************************************************************************/
void Delay_MS(u16 dly)
{
u16 i,j;
for(i=0;i<dly;i++)
for(j=1000;j>0;j--);
}
/*******************************************************************************
* Function Name: RCC_Configuration
* Description : Configures the different system clocks.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void RCC_Configuration(void)
{
//----------????????RC?§??-----------
RCC_DeInit(); //?????????±????
RCC_HSEConfig(RCC_HSE_ON); //???????????????±??
while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET); //?????????????±?????????÷
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //Enable  refetch Buffer
FLASH_SetLatency(FLASH_Latency_2); //Flash 2 wait state
RCC_HCLKConfig(RCC_SYSCLK_Div1); //HCLK = SYSCLK
RCC_PCLK2Config(RCC_HCLK_Div1); //PCLK2 = HCLK
RCC_PCLK1Config(RCC_HCLK_Div2); //PCLK1 = HCLK/2
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); //PLLCLK = 8MHZ * 9 =72MHZ
RCC_PLLCmd(ENABLE); //Enable  LLCLK
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //Wait till  LLCLK is ready
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //Select  LL as system clock
while(RCC_GetSYSCLKSource()!=0x08); //Wait till  LL is used as system clock source
//---------?ò???à?????è?±??--------------------
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1| RCC_APB2Periph_AFIO,ENABLE); //????APB2???è??GPIOA???±??
// RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);
//?????±??
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ,ENABLE);
}
/*******************************************************************************
* Function Name: GPIO_Configuration
* Description : ??????GPIO???è
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* Configure USARTx_Tx as alternate function push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Configure USARTx_Rx as input floating */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
/*******************************************************************************
* Function Name: USART1_Configuration
* Description : ??????USART1
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void USART1_Configuration(void)
{
USART_InitTypeDef U3;
U3.USART_BaudRate =9600;
U3.USART_WordLength = USART_WordLength_8b;
U3.USART_StopBits = USART_StopBits_1;
U3.USART_Parity = USART_Parity_No;
U3.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;
U3.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_Init(USART1, &U3);
USART_Cmd(USART1,ENABLE);
}
/*******************************************************************************
* Function Name: USART1_Configuration
* Description : ??????USART1
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void SysTick_Configuration(void)
{
SysTick_CounterCmd(SysTick_Counter_Disable);
SysTick_ITConfig(DISABLE);
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//9Mhz
SysTick_SetReload(9000*1000); //9000/9M
SysTick_CounterCmd(SysTick_Counter_Enable );
// SysTick_ITConfig(DISABLE);
} |
|