串口通信的尝试

来源:本站
导读:目前正在解读《串口通信的尝试》的相关信息,《串口通信的尝试》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《串口通信的尝试》的详细说明。
简介: UASRT串口要传输数据根据传输数据方向,要设置GPIO_Mode_IN_FLOATING浮空输入(串行接收时)或GPIO_Mode_AF_PP复用推挽输出(串行发送时)。

我先用PA9作为串口1的TX引脚,用PA10作为串口1的RX引脚,我对各个引脚的状态功能不是特别清楚,不过通过写了一些代码觉得应该是与该引脚的具体功能相对应有关,例如在串口通信时就应该设置成浮空输入和复用推挽输出,在这里提出我的理解如果理解有误欢迎各位前辈积极指正。

所以我如果实现串口通信首先需要配置GPIO和USART为指定状态:

void usart_init( void )

{//初始化结构体定义

GPIO_InitTypeDef GPIO_InitStructure;

USART_InitTypeDef USART_InitStructure;

//使能串口时钟

RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1, ENABLE );

//指定PA9和PA10用于串口

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置速度

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//设置推输出

GPIO_Init( GPIOA, &GPIO_InitStructure );//调用初始化函数完成初始化

//定义RX引脚

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//设置浮空输入

GPIO_Init( GPIOA, &GPIO_InitStructure );

USART_InitStructure.USART_BaudRate = 38400;

USART_InitStructure.USART_WordLength = USART_WordLength_8b;

USART_InitStructure.USART_StopBits = USART_StopBits_1;

USART_InitStructure.USART_Parity = USART_Parity_No;

USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

USART_Init( USART1, &USART_InitStructure );

USART_Cmd( USART1, ENABLE );

USART_ITConfig(USART1,USRT_IT_TXE,ENABLE);

}

接收函数:

void void Uart1_Put(unsigned charch)

{

USART_SendData(USART1,ch);//调用发送函数发送数据

while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);//检查是否发送完毕

}

提醒:《串口通信的尝试》最后刷新时间 2024-03-14 01:12:51,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《串口通信的尝试》该内容的真实性请自行鉴别。