关于n32g031芯片的串口初始化

本代码为串口的输出与输入操作的代码初始化.

内容基本与stm32串口初始化一致.

#include "usart1.h"

void UART1_Init(void) {
    RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_USART1, ENABLE);
		RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_AFIO,  ENABLE);	

    GPIO_InitType GPIO_InitStruct1 = {0};
		GPIO_InitStruct(&GPIO_InitStruct1);
		GPIO_InitStruct1.Pin            =  GPIO_PIN_9 | GPIO_PIN_10;
    GPIO_InitStruct1.GPIO_Alternate = GPIO_AF4_USART1;
    GPIO_InitStruct1.GPIO_Mode      = GPIO_MODE_AF_PP;
    GPIO_InitPeripheral(GPIOA, &GPIO_InitStruct1);
		
    USART_InitType USART_InitStruct = {0};
		USART_InitStruct.BaudRate            = 115200;
    USART_InitStruct.WordLength          = USART_WL_8B;
    USART_InitStruct.StopBits            = USART_STPB_1;
    USART_InitStruct.Parity              = USART_PE_NO;
    USART_InitStruct.Mode                = USART_MODE_RX | USART_MODE_TX;
    USART_InitStruct.HardwareFlowControl = USART_HFCTRL_NONE;
    USART_Init(USART1, &USART_InitStruct);
		
		USART_ConfigInt(USART1,USART_INT_RXDNE,ENABLE);
		NVIC_InitType NVIC_InitStruct = {0};
		NVIC_InitStruct.NVIC_IRQChannel = USART1_IRQn;
		NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
		NVIC_InitStruct.NVIC_IRQChannelPriority = 3;
		NVIC_Init(&NVIC_InitStruct);
    USART_Enable(USART1, ENABLE);
}

int fputc(int ch, FILE *f)
{
	while(USART_GetFlagStatus(USART1, USART_FLAG_TXDE) != 1);//等待数据发完
	USART_SendData(USART1,ch);
	return ch;
}

void USART1_IRQHandler(void)
{
	uint8_t data1 = 0;
	if(USART_GetFlagStatus(USART1, USART_INT_RXDNE) == SET)
	{
		data1 = USART_ReceiveData(USART1);//库函数读
		USART1->DAT = data1;
//		USART_SendData(USART1,data1);
	}
	

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值