高级会员

- 积分
- 807
- 金钱
- 807
- 注册时间
- 2016-5-16
- 在线时间
- 118 小时
|
1金钱
stm32f103rct6 mini板的SYstem文件下usart.c部分代码
//GPIO端口设置
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA时钟 这个位置没有体现PA9.10复用到usart1啊
//USART1_TX GPIOA.9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9
stm32f407zgt6 探索板的SYstem文件下usart.c部分代码
//GPIO端口设置
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //使能GPIOA时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//使能USART1时钟
//串口1对应引脚复用映射
GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1); //GPIOA9复用为USART1 复用了
GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1); //GPIOA10复用为USART1 复用了
//USART1端口配置
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; //GPIOA9与GPIOA10
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用功能
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度50MHz
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽复用输出
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉
GPIO_Init(GPIOA,&GPIO_InitStructure); //初始化PA9,PA10
硬石stm32f103ze 板的usart.c部分代码
#define USARTx_BAUDRATE 115200
#define USARTx_ClockCmd RCC_APB2PeriphClockCmd
#define USARTx_CLK RCC_APB2Periph_USART1
#define USARTx_GPIO_ClockCmd RCC_APB2PeriphClockCmd
#define USARTx_TX_PORT GPIOA
#define USARTx_TX_PIN GPIO_Pin_9
#define USARTx_TX_CLK RCC_APB2Periph_GPIOA
#define USARTx_RX_PORT GPIOA
#define USARTx_RX_PIN GPIO_Pin_10
#define USARTx_RX_CLK RCC_APB2Periph_GPIOA
#define USARTx_IRQHANDLER USART1_IRQHandler
#define USARTx_IRQn USART1_IRQn
#define USARTx USART1
GPIO_InitTypeDef GPIO_InitStructure;
/* 定义USART初始化结构体变量 */
USART_InitTypeDef USART_InitStructure;
/* 配置NVIC,设定USART接收中断优先级 */
NVIC_Configuration();
/* 使能USART时钟 */
USARTx_ClockCmd(USARTx_CLK,ENABLE);
/* 使能USART功能GPIO时钟 */
USARTx_GPIO_ClockCmd(USARTx_TX_CLK | USARTx_RX_CLK | RCC_APB2Periph_AFIO,ENABLE); 人家的也体现了复用RCC_APB2Periph_AFIO这个代码什么意思
/* 调试USART功能GPIO初始化 */
/* 设定USART发送对应IO编号 */
GPIO_InitStructure.GPIO_Pin = USARTx_TX_PIN;
/* 设定USART发送对应IO模式:复用推挽输出 */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
/* 设定USART发送对应IO最大操作速度 :GPIO_Speed_50MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/* 初始化USART发送对应IO */
GPIO_Init(USARTx_TX_PORT, &GPIO_InitStructure);
|
|