历史上的今天
今天是:2025年01月29日(星期三)
2019年01月29日 | STM32F103串口配置,并且使用printf进行打印
2019-01-29 来源:eefocus
首先要配置串口时钟:
// USART1 clock enable
RCC_APB2PeriphClockCmd(
RCC_APB2Periph_USART1 |
RCC_APB2Periph_GPIOA |
RCC_APB2Periph_AFIO, ENABLE);
然后再配置端口,在配置串口,再使能即可。
void USART1_Init(void)
{
/////// config the gpio
GPIO_InitTypeDef GPIO_InitStructure;
/* PA9 USART1_Tx */
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);
/* PA10 USART1_Rx */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //配置接收端口
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//
GPIO_Init(GPIOA, &GPIO_InitStructure);
//////////////
USART_InitTypeDef USART_InitStructure;//
USART_InitStructure.USART_BaudRate = 115200;//配置波特率
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;//
//config clock
USART_ClockInitTypeDef USART_ClockInitStructure;
USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;
USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;
USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;
USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;
USART_ClockInit(USART1, &USART_ClockInitStructure);
/* Configure USART1 */
USART_Init(USART1, &USART_InitStructure);//
/* Enable the USART1 */
USART_Cmd(USART1, ENABLE);//??1?
}
串口配置完毕,为了使得能够使用 printf 进行打印,需要进行重定向:
在 stm32f10x_usart.c 中添加如下代码:
int fputc(int ch, FILE *f)
{
/* 给USART写一个字符 */
USART_SendData(USART1, (uint8_t) ch);
/* 循环直到发送完成 */
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
return ch;
}
在 stm32f10x_usart.h 中添加stdio.h头文件,然后,添加声明 int fputc(int ch, FILE *f);
最后,在设置里面 Target 下面 勾选“Use MicroLIB” 就可以了。
史海拾趣
|
各位大侠: 小弟正用MC9328MXL CPU。第一次接触。请大侠们介绍一下。 还有,我想用程序管理CPU上的电池芯片。请问这款CPU上的电池芯片是什么型号的?官方网站地址是什么? 谢谢!!!… 查看全部问答> |
|
请问大家,做“智能卡”(比如食堂饭卡、公交车卡)、读卡器的开发工作,对于嵌入式开发、手机软件开发和Wince应用开发的工作在经验和技能上有没有多大帮助呢?… 查看全部问答> |
|
STM32F103RBT6+KEIL3.4+JLINK怎样设置keil下载程序到flash呢? STM32F103RBT6+KEIL3.4+JLINK 怎样设置keil下载程序到flash呢? 在网上查了好多相关文档,都试了,下载的时候也没报错,但是结果很奇怪。 之前下了个让PB2输出高电平点亮LED灯的程序,下载后LED确实亮了,后来想让LED闪烁,但是无论如何,LE ...… 查看全部问答> |
|
我现在想用STM32F105RB做产品,在现场通过U盘对产品进行升级!请问可以做到吗?因为USB的OTG我从来没有用过。以前用的要么只能host,或者只能作device。 另外当用STM32F105RB的OTG作主访问U盘时,外围还要加其它的接口芯片吗?另外就是STM32F ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 11:40 编辑 这个是英文版的,没发现中文版,有牛人自制中文版的,发上来贡献下。 … 查看全部问答> |
|
开始时觉得自学单片机,再上升到嵌入式的高度,慢慢来,总会成的。但是越来越感觉自学的不可行性,网上的视频只是一个一个模块的教你使用了零碎的外围,我觉得除了这些零碎以外我没有收获到什么东西。希望高手能给我的自学道路指点一下方向,就是说 ...… 查看全部问答> |




