数码小叶 发表于 2015-1-13 09:18:50

串口调试完成,库函数法

自动返回你输入的字符



主函数如下:#include "stm32f0xx.h"
#include "Usart1.h"

unsigned char Uart_buf={0x00,0x00}; //缓冲接收缓冲器

void led_gpio_config()
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_AHBPeriphClockCmd ( RCC_AHBPeriph_GPIOA, ENABLE);   //总线使能

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;               //Pin 5
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT ;            //输出模式
GPIO_InitStructure.GPIO_OType        =GPIO_OType_PP ;            //推挽输出
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;             //配置为上拉
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_3;       //50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure);      
}


int main(void)
{            
       
        led_gpio_config(); //IO口初始化
       
        GPIO_SetBits(GPIOA,GPIO_Pin_5);
        USART_Config();
       
        printf("STM32-NUCLEO-072RB开发板初始化成功!\r\n");       
        printf("\"hello world\"!\r\n");       
        printf("\r\n 你输入的字符是:\r\n");
        while (1)
       {
               Uart_buf=Uart_RChar();
               if(Uart_buf!=NULL)
                               printf("你输入的字符是:%x\r\n",Uart_buf);       
       }
       
}


沐紫 发表于 2015-1-13 09:24:24

谢谢~

数码小叶 发表于 2015-1-13 09:32:50

串口打印的,printf重定向部分:(在此感谢“山河”网友的指点啊,不知道论坛ID是啥) /*******************************************************************************
函数名称:fputc(int ch, FILE *f)
功    能:串口实现Printf()函数功能
参    数:无
返回值:
********************************************************************************/
int fputc(int ch, FILE *f)
{
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)
<font color="#ff0000">                ;</font>
      USART_SendData(USART1,(uint8_t)ch);
return (ch);
}
关于上面的那个分号,如果在while后面,会有警告

zhexingwei 发表于 2015-1-13 10:58:03

帮顶 ,感谢分享
页: [1]
查看完整版本: 串口调试完成,库函数法