微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32 之 UART1(2)

STM32 之 UART1(2)

时间:12-03 来源:互联网 点击:

uart1
* Input : None
* Output : None
* Return : None
*******************************************************************************/
voidUART1_Configuration(void)
{
USART_InitTypeDefUSART_InitStructure_UART1;
/* USART1 configured as follow:
- BaudRate = 9600 baud
- Word Length = 8 Bits
- One Stop Bit
- No parity
- Hardware flow control disabled (RTS and CTS signals)
- Receive and transmit enabled
*/
USART_InitStructure_UART1.USART_BaudRate=9600;// 配置UART1 波特率为9600
USART_InitStructure_UART1.USART_WordLength=USART_WordLength_8b;// 配置UART1 传输过程中每一帧的数据位数为 8位
USART_InitStructure_UART1.USART_StopBits=USART_StopBits_1;// 配置UART1 发送停止位 为1个
USART_InitStructure_UART1.USART_Parity=USART_Parity_No;// 配置UART1 奇偶效验模式 为无奇偶效验
USART_InitStructure_UART1.USART_HardwareFlowControl=USART_HardwareFlowControl_None;// 配置UART1 硬件流控制 为无硬件流控制
USART_InitStructure_UART1.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;// 配置UART1 使能发射和接受模式

/* Configure the USART1*/
USART_Init(USART1,&USART_InitStructure_UART1);// 初始化UART1

/* Enable USART1 Receive and Transmit interrupts */
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);// 配置UART1接受中断使能

/* Enable the USART1 */
USART_Cmd(USART1,ENABLE);// 使能UART1
}

/*******************************************************************************
* Function Name : GPIO_Configuration
* Description : Configures the different GPIO ports.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
voidGPIO_Configuration(void)
{
GPIO_InitTypeDefGPIO_InitStructure_LED_PORTB;
GPIO_InitTypeDefGPIO_InitStructure_KEY_PORTA;
GPIO_InitTypeDefGPIO_InitStructure_KEY_PORTB;
GPIO_InitTypeDefGPIO_InitStructure_KEY_PORTC;
GPIO_InitTypeDefGPIO_InitStructure_UART1_TX_PORTA;
GPIO_InitTypeDefGPIO_InitStructure_UART1_RX_PORTA;

//==== LED =======================================================
GPIO_InitStructure_LED_PORTB.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure_LED_PORTB.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure_LED_PORTB.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出
GPIO_Init(GPIOB,&GPIO_InitStructure_LED_PORTB);

//==== KEY =======================================================
GPIO_InitStructure_KEY_PORTA.GPIO_Pin=GPIO_Pin_0;
GPIO_InitStructure_KEY_PORTA.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure_KEY_PORTA.GPIO_Mode=GPIO_Mode_IPU;//上拉输入
GPIO_Init(GPIOA,&GPIO_InitStructure_KEY_PORTA);

GPIO_InitStructure_KEY_PORTB.GPIO_Pin=GPIO_Pin_7;
GPIO_InitStructure_KEY_PORTB.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure_KEY_PORTB.GPIO_Mode=GPIO_Mode_IPU;//上拉输入
GPIO_Init(GPIOB,&GPIO_InitStructure_KEY_PORTB);

GPIO_InitStructure_KEY_PORTC.GPIO_Pin=GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure_KEY_PORTC.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure_KEY_PORTC.GPIO_Mode=GPIO_Mode_IPU;//上拉输入
GPIO_Init(GPIOC,&GPIO_InitStructure_KEY_PORTC);

//==== UART1 ======================================================
// Configure USART1_Tx as alternate function push-pull
GPIO_InitStructure_UART1_TX_PORTA.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStructure_UART1_TX_PORTA.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure_UART1_TX_PORTA.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出
GPIO_Init(GPIOA,&GPIO_InitStructure_UART1_TX_PORTA);

// Configure USART1_Rx as input floating
GPIO_InitStructure_UART1_RX_PORTA.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStructure_UART1_RX_PORTA.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure_UART1_RX_PORTA.GPIO_Mode=GPIO_Mode_IN_FLOATING;// 悬浮输入
GPIO_Init(GPIOA,&GPIO_InitStructure_UART1_RX_PORTA);

}

/*******************************************************************************
* Function Name : 精确延时函数
*******************************************************************************/
voidDelay_Ms(u32nTime)
{
/* Enable the SysTick Counter */
SysTick_CounterCmd(SysTick_Counter_Enable);

TimingDelay=nTime;

while(TimingDelay!=0);

/* Disable SysTick Counter */
SysTick_CounterCmd(SysTick_Counter_Disable);
/* Clear SysTick Counter */
SysTick_CounterCmd(SysTick_Counter_Clear);
}

上一篇:STM8S BEEP
下一篇:AVR 串口使用

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top