STM32的IO口复用为串口之后的IO设置问题

2019-07-20 01:05发布

//USART1_TX PA.9 PA.10
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; //GPIOA9 与 GPIOA10
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用功能
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度 50MHz
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽复用输出
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉
GPIO_Init(GPIOA,&GPIO_InitStructure); //初始化 PA9, PA10  


我看官方大大写的程序里(usart.c) 关于IO复用为串口1之后,IO口设置如上。
这里有个重要的疑问,PA9是TX做输出设置为推挽复用输出没错,但是PA10是RX,为什么也设置成推完复用输出????
RX设置成输出还能做接收数据的IO口用吗??
我自己在网上查了下,都说PA9设置成推挽输出,PA10设置成浮空输入,如下
    //USART1 Tx(PA.09)     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);    //USART1 Rx(PA.10)     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;     GPIO_Init(GPIOA, &GPIO_InitStructure);
是不是官方大大写的程序有误呢??本人刚开始学,没去试验程序,请大佬们看看,感谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
32shixisheng
1楼-- · 2019-07-20 04:15
 精彩回答 2  元偷偷看……
peng1554
2楼-- · 2019-07-20 05:39
 精彩回答 2  元偷偷看……
wxz1029wxz
3楼-- · 2019-07-20 10:29
peng1554 发表于 2018-8-14 11:17
我这边的代码跟你不一样。战舰V3板子(103ZET6芯片)。看的是哪个板子的代码?

stm32f407ZGT6  探索者的,我看里面给的程序例码 都是写成了推挽输出
peng1554
4楼-- · 2019-07-20 13:49
wxz1029wxz 发表于 2018-8-14 11:41
stm32f407ZGT6  探索者的,我看里面给的程序例码 都是写成了推挽输出

这是我在F4中文参考手册“IO引脚复用和映射”章节看到的
wxz1029wxz
5楼-- · 2019-07-20 15:16
 精彩回答 2  元偷偷看……
yijinxiaoyou
6楼-- · 2019-07-20 17:27
 精彩回答 2  元偷偷看……

一周热门 更多>