UASRT篇(含fputc重定向)

波特率:每秒切换符号的次数(符号不是指一个bit位,他可以是多个)

比特率:每秒发送bit数量

在USART中,一个符号一bit,所以波特率等于比特率

全双工通讯 :一根发送线一根接收线(同步通信还有一根时钟线)

配置代码:

void Uart1_GPIO_init(void)
{
    GPIO_InitTypeDef GPIO_Initstructure;
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
	

    GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_USART1);
    GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_USART1);
	//TX==> PA9
    
	GPIO_Initstructure.GPIO_Mode = GPIO_Mode_AF;
	GPIO_Initstructure.GPIO_OType = GPIO_OType_PP;
	GPIO_Initstructure.GPIO_Pin = GPIO_Pin_9;
	GPIO_Initstructure.GPIO_PuPd = GPIO_PuPd_UP;
	GPIO_Initstructure.GPIO_Speed = GPIO_Speed_100MHz;
	
	GPIO_Init(GPIOA, &GPIO_Initstructure);

    //RX==> PA10
    GPIO_Initstructure.GPIO_Mode = GPIO_Mode_IN;
	GPIO_Initstructure.GPIO_Pin = GPIO_Pin_10;
	GPIO_Initstructure.GPIO_PuPd = GPIO_PuPd_UP;

	
	GPIO_Init(GPIOA, &GPIO_Initstructure);

}

void Uart1_init(void)
{
    USART_InitTypeDef USART_InitStructure;
    Uart1_GPIO_init();
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
    USART_InitStructure.USART_BaudRate = 115200; //115200
	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
	USART_InitStructure.USART_Mode = USART_Mode_Tx;
	USART_InitStructure.USART_Parity = USART_Parity_No;
	USART_InitStructure.USART_StopBits = USART_StopBits_1;
	USART_InitStructure.USART_WordLength = USART_WordLength_8b;
	
    USART_Init(USART1, &USART_InitStructure);
    USART_Cmd(USART1, ENABLE);
}

步骤1:根据数据手册选一组你想要的io口做RX/TX线

步骤2:分别配置GPIO模式(看第一篇),指定复用的io口

步骤3:配置复用模式(打开对应复用功能时钟==>>配置uart==>>启用USART功能)

fputc重定向代码:需包含stdio.h

int fputc(int ch, FILE *f)
{
    USART_TypeDef * usart_x = USART1;
    while((usart_x->SR & (1<<7)) == 0); // Wait until TXE is set
    usart_x->DR = ch;
    return ch;
}

该位等于0的时候说明发送数据寄存器的数据还未转移到移位寄存器中,不为空

得勾选这个才能完成fputc函数重定向操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值