完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
串口通信步骤:
1、串口时钟使能,GPIO时钟使能 2、串口复位 3、GPIO端口模式设置 4、串口参数初始化 5、初始化NVIC 6、开启中断 7、使能串口 按照这几个步骤下来应该就可以通信了,你应该少了第二个串口复位,增加一行代码:USART_DeInit(USART2) |
|
|
|
楼主问题解决了,记得及时结贴哦,社区还有3倍奖励要奖励给回答问题者哦
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LiuYang 发表于 2016-8-11 19:34 RX怎么改成AF,不是应该是浮空输入吗 |
|
|
|
@马踏飞燕 大神 快来
|
|
|
|
云汉达人
这是我用的程序,如下的配置是可以正常通讯的。所以RX配置成GPIO_Mode_IN_FLOATING也是可以的。 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //RX GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;// GPIO_Init(GPIOA, &GPIO_InitStructure); // GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //TX GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure); // |
|
|
|
云汉达人
在你的配置程序中,你使能的是接收中断, USART_ITConfig(USART2,USART_IT_RXNE,ENABLE); 程序功能是返回接收到的数据。 先确定是不是硬件 问题。再看程序了的。 先确定PC是不是发送了,可以短接PC上的TX与RX,试试。 确定STM32是不是接收到了,仿真一下看下有没有进中断里。 |
|
|
|
|
|
|
|
本帖最后由 999 于 2016-8-13 02:45 编辑
我这里说一种我遇到过的情况: “在接收中断中,进行发送” 有时就会产生这样的问题。 这个问题比较奇葩,有时修改代码或者删掉一些函数,又好了。当时没有去仔细寻找原因。 所以我建议楼主: 1、在接接收中断中,不要发送,设置一个IO口进行输出,如点亮一个小灯。或者进入debug模式在中断设置断点。先单独判断是否能触发接收中断。 2、单独发送,看是否成功。 曾遇到不好觉得的问题:比如进入debug就正常,不进入就异常。或者插着Jlink就正常,拔下去就不正常。导致原因很多,就要隔离条件,依次测试。 |
|
|
|
残存地丢 发表于 2016-8-11 16:36 程序是不是改 void USART2_IRQHandler(void) 里的,还有把GPIOA的复用功能没开,程序试了一下,程序是可以通讯的,但是有时候不是很稳定是什么原因,有时候接收不到 |
|
|
|
只有小组成员才能发言,加入小组>>
725 浏览 0 评论
1125 浏览 1 评论
2506 浏览 5 评论
2840 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2687 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
665浏览 9评论
680浏览 7评论
imx6dl芯片与imx6q芯片互换启动无反应请问是什么问题呢
287浏览 5评论
219浏览 4评论
新手求助makefile交叉编译生成文件不能移植到板子上运行咋办
250浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 14:35 , Processed in 1.173645 second(s), Total 102, Slave 82 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号