野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15059|回复: 15

USART2/3无法使用

[复制链接]
发表于 2015-4-5 21:54:54 | 显示全部楼层 |阅读模式
本帖最后由 valour746 于 2015-4-21 15:36 编辑

看了USART1的教程,参照着写了USART2的发送,但是,串口助手接收到的是不断发送过来的00,特向各位求解,不知是不是有什么没注意到的。用的是ISO-MINI的开发板
配置 USART2 代码如下:
void USART2_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        
        /* config USART2 clock */
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
        
        /* USART2 GPIO config */
        /* Configure USART2 Tx (PA.2) as alternate function push-pull */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);   
        /* Configure USART2 Rx (PA.3) as input floating */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        
        /* USART2 mode config */
        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;
        USART_Init(USART2, &USART_InitStructure);

        USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
        
        USART_Cmd(USART2, ENABLE);
}


int fputc(int ch, FILE *f)
{

                USART_SendData(USART2, (uint8_t) ch);
                while (USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);               
                return (ch);
}

int main(void)
{
                /* USART2 config 115200 8-N-1 */
                USART2_Config();
        printf("\r\n this is a usart printf demo \r\n");
        
                for(;;)
                {                        
                }
}


用串口助手无法收到数据。
回复

使用道具 举报

 楼主| 发表于 2015-4-5 22:00:39 | 显示全部楼层
或者有哪位能不能指点一下怎么去测试是哪里的问题?我试了一下USART3也是这种情况,但是usart1是正常的,接上ISO-MINI引出的USART1的引脚也是正常的,USART2和USART3就不知道怎么回事了。
回复 支持 反对

使用道具 举报

发表于 2015-4-5 23:51:28 | 显示全部楼层
查看下mini板原理图,看串口引脚是否跟其他模块共用了,去掉其他模块对于的跳线帽
回复 支持 反对

使用道具 举报

发表于 2015-4-6 10:38:05 | 显示全部楼层
看一下串口接收中断
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-7 19:06:06 | 显示全部楼层
不录了 发表于 2015-4-6 10:38
看一下串口接收中断

把中断允许注释掉也是一样的结果,貌似不是中断的问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-7 19:08:01 | 显示全部楼层
亽亼 发表于 2015-4-5 23:51
查看下mini板原理图,看串口引脚是否跟其他模块共用了,去掉其他模块对于的跳线帽

照您说的检查了一下,没有这个问题。而且正常使用的USART1是接了USART转USB的CP2012芯片,另外还引出了PA9 和PA10的接口,从两边都能正确得得到结果,反而是什么其他的都没接的USART2和USART3总是不对……
回复 支持 反对

使用道具 举报

发表于 2015-4-7 19:36:44 | 显示全部楼层
你是用哪种模块接USART2测试的???就是想问一下你是怎么接线的???
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-13 21:10:43 | 显示全部楼层
亽亼 发表于 2015-4-7 19:36
你是用哪种模块接USART2测试的???就是想问一下你是怎么接线的???

不好意思前几天一直有事~我是直接用USB转串口线接的,当然有经过电平转换。同样的接法接上USART1能用。USART2没有其他的模块接上去
回复 支持 反对

使用道具 举报

发表于 2015-4-14 09:22:11 | 显示全部楼层
while (USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);  
改成while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);  
试一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-21 10:45:27 | 显示全部楼层
亽亼 发表于 2015-4-14 09:22
while (USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);  
改成while (USART_GetFlagStatus(USART ...

这两天又试了好几次,USART2和USART3都不能发送和接收,照您说的改了也没用。不知道该怎么去查这个问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-21 15:03:44 | 显示全部楼层
http://www.firebbs.cn/thread-6508-1-1.html  这个帖子15楼也说了同样的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-21 18:25:20 | 显示全部楼层
还是这个蛋疼的问题,按照网店客服说的,用<STM32库开发实战指南>里的USART2例程试了一下,下载进去以后USART2还是不能通信。但是把时钟改成USART1,IO口改成A9和A10,然后接上USART1就能正常通信了。这么看不是串口线连接的问题。所以最不情愿地怀疑是板子的问题。。客服态度非常nice~
回复 支持 反对

使用道具 举报

发表于 2015-4-22 09:17:21 | 显示全部楼层
野火GSM模块例程使用USART2编程的,楼主可参考里边例程
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-24 22:05:33 | 显示全部楼层
亽亼 发表于 2015-4-22 09:17
野火GSM模块例程使用USART2编程的,楼主可参考里边例程

我用了《库开发指南》里的例程,也是USART2的,还是不行。这个我再试试看
回复 支持 反对

使用道具 举报

发表于 2015-10-10 16:35:38 | 显示全部楼层
把跳线帽拔了就行了
回复 支持 反对

使用道具 举报

发表于 2015-10-10 16:41:50 | 显示全部楼层
msc 发表于 2015-10-10 16:35
把跳线帽拔了就行了

早叫你拔掉跳帽的啦,就是不听
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 00:09 , Processed in 0.035924 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表