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条回答
xuyaqi
1楼-- · 2019-07-21 19:55
wxz1029wxz 发表于 2018-8-15 11:19
您这回答 跟我那问题不对应啊

如果要仔细深入学习,我看还是学习寄存器程序,那样通过查寄存器手册,可以了解的一清二楚,看固件库程序都封装了,看不到里面的细节,只能照着用。
QQ363538751
2楼-- · 2019-07-21 23:52
 精彩回答 2  元偷偷看……

一周热门 更多>