#include "delay.h"
#include "sys.h"
#include "led.h"
/********************************************************************************************************
**函数信息 :main(void)
**功能描述 :
**输入参数 :无
**输出参数 :无
********************************************************************************************************/
int fputc(int ch, FILE *f)
{
while((UART1->CSR&UART_IT_TXIEN)==0);//循环发送,直到发送完毕
UART1->TDR = (ch & (uint16_t)0x00FF);
return ch;
}
int main(void)
{
unsigned int x=0;
UART_InitTypeDef UART_Uart1;
GPIO_InitTypeDef GPIO_InitStructure;
UART_Uart1.UART_BaudRate =115200;
UART_Uart1.UART_HardwareFlowControl =UART_HardwareFlowControl_None;
UART_Uart1.UART_Mode =UART_Mode_Rx | UART_Mode_Tx;
UART_Uart1.UART_Parity =UART_Parity_No;
UART_Uart1.UART_StopBits =UART_StopBits_1;
UART_Uart1.UART_WordLength =UART_WordLength_8b;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_UART1, ENABLE); //使能UART1,GPIOA时钟
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //开启GPIOA,GPIOB时钟
//UART 初始化设置
GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_1);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_1);
UART_DeInit(UART1);
UART_Init(UART1,&UART_Uart1);
UART_Cmd(UART1, ENABLE);
//UART1_TX GPIOA.9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9
//UART1_RX GPIOA.10初始化
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10
delay_init();
LED_Init();
while(1)
{
delay_ms(2000);
printf("Hello Blink.....%d\n",x++);
LED1_TOGGLE();
}
}
printf移植还是非常容易的,我看很多大佬分享了经验。
|