复旦微FM33LG048芯片使用(5)UART3数字外设的使用,引脚重映射

uart3的引脚配置比较特殊,先要配置

GPIO_InitStruct.mode          = FL_GPIO_MODE_DIGITAL;

配置为数字外设,什么是数字外设,根据文档里描述

 也就是配置了数字外设,引脚的输出输入由使用的外设决定,不需要我们配置是输入还是输出了。

在文档中GPIO章节有一张表,

 也就是remap为disable时,PB0, PB1作为SPI1_MISO和SPI1_MOSI引脚使用。remap为enable时,作为UART3_RX和UART3_TX引脚使用。其他引脚同理,disable作为数字功能1使用,enable作为数字功能2使用。

 所以init应该是这样的

void MF_UART3_Init(void)
{
    FL_GPIO_InitTypeDef    GPIO_InitStruct;

    FL_UART_InitTypeDef    UART3_InitStruct;

		//UART3_RX
    GPIO_InitStruct.pin           = FL_GPIO_PIN_0;
    GPIO_InitStruct.mode          = FL_GPIO_MODE_DIGITAL;
    GPIO_InitStruct.outputType    = FL_GPIO_OUTPUT_PUSHPULL;
    GPIO_InitStruct.pull          = FL_ENABLE;
    GPIO_InitStruct.remapPin      = FL_ENABLE;
    GPIO_InitStruct.analogSwitch  = FL_DISABLE;
    (void)FL_GPIO_Init(GPIOB, &GPIO_InitStruct);
	
		//UART3_TX
    GPIO_InitStruct.pin           = FL_GPIO_PIN_1;
    GPIO_InitStruct.mode          = FL_GPIO_MODE_DIGITAL;
    GPIO_InitStruct.outputType    = FL_GPIO_OUTPUT_PUSHPULL;
    GPIO_InitStruct.pull          = FL_DISABLE;
    GPIO_InitStruct.remapPin      = FL_ENABLE;
    GPIO_InitStruct.analogSwitch  = FL_DISABLE;
    (void)FL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    UART3_InitStruct.clockSrc          = FL_CMU_UART0_CLK_SOURCE_APBCLK;
    UART3_InitStruct.baudRate          = 115200;
    UART3_InitStruct.transferDirection = FL_UART_DIRECTION_TX_RX;
    UART3_InitStruct.dataWidth         = FL_UART_DATA_WIDTH_8B;
    UART3_InitStruct.stopBits          = FL_UART_STOP_BIT_WIDTH_1B;
    UART3_InitStruct.parity            = FL_UART_PARITY_NONE;

    (void)FL_UART_Init(UART3, &UART3_InitStruct);
}

void MF_UART3_Interrupt_Init(void)
{
    FL_UART_ClearFlag_RXBuffFull(UART3);
    FL_UART_EnableIT_RXBuffFull(UART3);
//    FL_UART_ClearFlag_TXShiftBuffEmpty(UART3);
//    FL_UART_EnableIT_TXShiftBuffEmpty(UART3);
}

至于串口接收中断可以参考之前的章节:

复旦微FM33LG048芯片使用(4)UART串口的使用_tengtext的博客-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值