完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
最近比较忙,难得周末抽出空来耐心的研究USART模块,终于功夫不负有心人,先上图:
首先这个函数的实现是使用printf函数实现的,但是这个看似简单,用着也特别简单的函数背后,确实这样的: 首先这个printf函数使用的是USART1串口来实现的,下面是对USART1串口的初始化代码: void USART1_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; /* 配置USART1时钟,这句话首先是开启USART1模块的时钟,因为这个USART1串口是复用到GPIOA模 块上的,所以然后再加上开启GPIOA模块的时钟,就是下面这段代码了 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE); /* GPIO模块 配置*/ /* 因为USART1的Tx是复用到PA.09的,所以次引脚需要配置为输出模式,为了提高负载能力,在此配置 为推挽输出,代码如*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //选择配置引脚 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用为推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置输出频率为50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化次引脚 /* 配置USART1 Rx (PA.10) 因为是输入,所以不需要其他的,直接浮空输入就可以了 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //这三行代码和上边配置PA.09类 //似,不再多解释了 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOAtiNG; GPIO_Init(GPIOA, &GPIO_InitStructure); /*GPIO模块配置完了,接下来该配置USART模块了*/ USART_InitStructure.USART_BaudRate = 115200; //设置波特率为115200 USART_InitStructure.USART_WordLength = USART_WordLength_8b; //设置字长为8位 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); //使能此模块 } //重新定向c库函数ýprintf到USART1 int fputc(int ch, FILE *f) { /* 发送一个字节数据到USART1 */ USART_SendData(USART1, (uint8_t) ch); /* 等待发送完毕*/ while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET); return (ch); } 要想正确是使用云智易开发板上的串口,还需要链接几个线, 开发板上有J3和J2这两组排针:
|
|
|
相关推荐
|
|
|
|
|
|
|
|
|
|
|
|
1、【云智易试用体验】+庐山真面目(9.4)
https://bbs.elecfans.com/jishu_509822_1_1.html 2、【云智易试用体验】+尝试通过串口下载程序(9.7) https://bbs.elecfans.com/jishu_510433_1_1.html 3、【云智易试用体验】+电机控制(9.9) https://bbs.elecfans.com/jishu_513541_1_1.html 4、【云智易试用体验】+stm32深入底层驱动之GPIO模块(上)(9.13) https://bbs.elecfans.com/jishu_514265_1_1.html 5、【云智易试用体验】+stm32深入底层驱动之GPIO模块(下)(9.13) https://bbs.elecfans.com/jishu_514318_1_1.html 6、【云智易试用体验】+stm32深入底层驱动之USART模块(上)(9.15) https://bbs.elecfans.com/jishu_514597_1_1.html 7、【云智易试用体验】+stm32深入底层驱动之USART模块(下)(9.19) https://bbs.elecfans.com/jishu_515313_1_1.html |
|
|
|
|
|
|
|
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 12:38 , Processed in 0.724724 second(s), Total 72, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖