STM32F103C8T6_UART1(RS485通讯)复用PB6+PB7

本文详细介绍了STM32的GPIO初始化、DMA通道配置以及USART的相关设置,包括GPIO复用功能、DMA地址通道查找和选择对应的DMA通道。还提到了中断结构体的填充和中断配置,以及使用上位机仿真查看寄存器配置的提示。
摘要由CSDN通过智能技术生成

1,配置响应的通道初始化

GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_StructInit(&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB, &GPIO_InitStructure);

2,DMA地址通道查找
在这里插入图片描述
在这里插入图片描述
#define USART1_RDR_Address 0x40013804
#define USART1_TDR_Address 0x40013804

3,选择对应的DMA通道
在这里插入图片描述

DMA_Cmd(DMA1_Channel5, DISABLE); // DMA1_Channel3 =UART3_RX
DMA_DeInit(DMA1_Channel5);
参考宏

// 串口1-USART1
#define DEBUG_USARTx USART1
#define DEBUG_USART_CLK RCC_APB2Periph_USART1
#define DEBUG_USART_APBxClkCmd RCC_APB2Periph_USART1
#define DEBUG_USART_BAUDRATE 9600

// USART GPIO 引脚宏定义
#define DEBUG_USART_GPIO_CLK (RCC_APB2Periph_GPIOB)
#define DEBUG_USART_GPIO_APBxClkCmd RCC_APB2PeriphClockCmd

#define DEBUG_USART_TX_GPIO_PORT GPIOB
#define DEBUG_USART_TX_GPIO_PIN GPIO_Pin_6
#define DEBUG_USART_RX_GPIO_PORT GPIOB
#define DEBUG_USART_RX_GPIO_PIN GPIO_Pin_7

#define DEBUG_USART_IRQ USART1_IRQChannel
#define DEBUG_USART_IRQHandler USART1_IRQHandler

打开复用时钟,打开对应的IO时钟,总线时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOA, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
注意加上复用功能配置 在IO初始化前面
GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);
在这里插入图片描述
主要操作就是这些,剩下的就是几个结构体的填充,需要打开的中断,和优先级的配置。这里放一些引子:
GPIO_InitTypeDef GPIO_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
USART_InitTypeDef USART_InitStructure;
DMA_InitTypeDef DMA_InitStructure;
需要的完整的阔以联系。
另外上位机仿真阔以看寄存器的配置,这个功能别忘记了,非常方便
在这里插入图片描述

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓑衣客VS索尼克

感谢支持原创,感谢原创支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值