- #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移植还是非常容易的,我看很多大佬分享了经验。
|