STM32
直播中

秋风宜人

13年用户 872经验值
擅长:基础元器件
私信 关注
[问答]

STM32F103C8T6标准库的USART2是怎样发送程序的

STM32F103C8T6标准库和STM32F4标准库有何区别?
STM32F103C8T6标准库的USART2是怎样发送程序的?

回帖(1)

陈鲜孰

2021-12-13 14:20:04
/**********************************参考程序************************************/

void USART2_Init(u32 Baud)
{
        GPIO_InitTypeDef   GPIO_InitStructure;
        USART_InitTypeDef  USART_InitStructure;
       
RCC_APB2PeriphClockCmd(RCC_APB2ENR_IOPAEN,ENABLE);                // GPIOA—RCC
RCC_APB1PeriphClockCmd(RCC_APB1ENR_USART2EN,ENABLE);    // USART2-RCC


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 ;                          // GPIOA-PIN_2  USART2-TX
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;         // 复用推挽输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;                                // GPIOA-PIN_3  USART2-RX
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;        // 浮空输入
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);


USART_InitStructure.USART_BaudRate = Baud;                                                                                          // 设置波特率       
USART_InitStructure.USART_Parity = USART_Parity_No;                                                                           // 校验位
USART_InitStructure.USART_StopBits = USART_StopBits_1;                                                                        // 停止位
USART_InitStructure.USART_WordLength = USART_WordLength_8b;                                                         // 数据位
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;                        // 无硬件流控制模式
USART_InitStructure.USART_Mode =USART_Mode_Rx | USART_Mode_Tx;                                                        // 收发模式
USART_Init(USART2,&USART_InitStructure);                                                                                                // 初始化 USART2


USART_Cmd(USART2,ENABLE);// 使能 USART2
}


// 主函数
uint16_t i = 0xff;
int main(void)
{
        USART2_Init(9600);
        while(1)
        {               
                USART_SendData(USART2,i);
        }       
}

  • STM32F103C8T6标准库版本和F4标准库不一样的是,STM32F103C8T6标准库没有GPIO_PinAFConfig引脚复用配置函数,这里只需要配置 USART2-TX(GPIOA-PIN2) 和 USART2-RX(GPIO-PIN3)分别配置成 复用推挽输出模式 和 浮空输入,其他参数跟其他芯片配置差不多就可以收发数据了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分