#include "stm32f10x.h" #include "stdio.h" void USART_init(uint32_t bound) { GPIO_InitTypeDef GPIO_InitStruct; //¶¨ÒåGPIO½á¹¹Ìå±äÁ¿ USART_InitTypeDef USART_InitStruct; //¶¨Òå´®¿Ú½á¹¹Ìå±äÁ¿ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_USART1,ENABLE); //ʹÄÜGPIOCµÄʱÖÓ GPIO_InitStruct.GPIO_Pin=GPIO_Pin_3; //ÅäÖÃTXÒý½Å GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP; //ÅäÖÃPA9Ϊ¸´ÓÃÍÆÍìÊä³ö GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin=GPIO_Pin_4; GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING; GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStruct); USART_InitStruct.USART_Mode=USART_Mode_Tx|USART_Mode_Rx; USART_InitStruct.USART_Parity=USART_Parity_No; USART_InitStruct.USART_BaudRate=bound; USART_InitStruct.USART_StopBits=USART_StopBits_1; USART_InitStruct.USART_WordLength=USART_WordLength_8b; USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None; USART_Init(USART1,&USART_InitStruct); USART_Cmd(USART1,ENABLE); //ʹÄÜUSART1 } int fputc(int ch,FILE *f) { USART_SendData(USART1,(uint8_t)ch); while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET); return ch; }
时间: 2023-09-06 17:07:47 浏览: 94
linux_s3c2410_gpio.rar_GPIO_GPIO linux _gpio 2410_linux gpio_s3c
这是一段代码,用于初始化 STM32F10x 的 USART1 模块,实现串口通讯。其中使用了 GPIO_InitTypeDef 结构体和 USART_InitTypeDef 结构体来配置 GPIO 和 USART 的参数,使用了 RCC_APB2PeriphClockCmd 函数来使能 GPIOB 和 USART1 的时钟,使用了 GPIO_Init 和 USART_Init 函数来初始化 GPIO 和 USART,最后使用 USART_Cmd 函数使能 USART1。另外,还有一个 fputc 函数,用于将字符发送到 USART1 的数据寄存器,并等待发送完成。
阅读全文