打印
[STM32F1]

STM32F103C8T6_UART1(RS485通讯)复用PB6+PB7

[复制链接]
134|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ym0sly|  楼主 | 2024-1-31 14:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
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


使用特权

评论回复
沙发
ym0sly|  楼主 | 2024-1-31 14:55 | 只看该作者
3,选择对应的DMA通道

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

使用特权

评论回复
板凳
ym0sly|  楼主 | 2024-1-31 14:55 | 只看该作者
参考宏

// 串口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);

使用特权

评论回复
地板
ym0sly|  楼主 | 2024-1-31 14:55 | 只看该作者
主要操作就是这些,剩下的就是几个结构体的填充,需要打开的中断,和优先级的配置。这里放一些引子:
GPIO_InitTypeDef GPIO_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
USART_InitTypeDef USART_InitStructure;
DMA_InitTypeDef DMA_InitStructure;
需要的完整的阔以联系。

使用特权

评论回复
5
ym0sly|  楼主 | 2024-1-31 14:56 | 只看该作者
另外上位机仿真阔以看寄存器的配置,这个功能别忘记了,非常方便

使用特权

评论回复
6
ym0sly|  楼主 | 2024-1-31 14:56 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

161

帖子

1

粉丝