野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10251|回复: 8

求助---调试USART2

[复制链接]
发表于 2015-11-2 16:15:03 | 显示全部楼层 |阅读模式
买的野火mini开发版,自己买了RS232想调试串口2,看了开发版的资料,给RS232接了开发版的五个接口(PA0 ,PA1,PA2,PA3,GND,VSS);
一开始同时的demo是同时串口1和串口2读写,没有成功,后来直接把例程的串口读写 把串口1改成串口2初始化内容,还是没有成功,求助哪里错了。

代码如下:
void USART1_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
       
        /* config USART1 clock */
        RCC_APB2PeriphClockCmd(RCC_APB1Periph_USART2 | RCC_APB2Periph_GPIOA, ENABLE);
       
        /* USART1 GPIO config */
        /* Configure USART1 Tx (PA.09) 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 USART1 Rx (PA.10) as input floating */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//.....................
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
       
        /* USART1 mode config */
        USART_InitStructure.USART_BaudRate = 115200;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;
        USART_InitStructure.USART_StopBits = USART_StopBits_2;
        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);
       
        /* 使能串口1接收中断 */
        USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
       
        USART_Cmd(USART2, ENABLE);
}

/// 配置USART1接收中断
void NVIC_Configuration(void)
{
        NVIC_InitTypeDef NVIC_InitStructure;
        /* Configure the NVIC Preemption Priority Bits */  
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
       
        /* Enable the USARTy Interrupt */
        NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;         
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
}


/// 重定向c库函数printf到USART1
int fputc(int ch, FILE *f)
{
                /* 发送一个字节数据到USART1 */
                USART_SendData(USART2, (uint8_t) ch);
               
                /* 等待发送完毕 */
                while (USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);               
       
                return (ch);
}

/// 重定向c库函数scanf到USART1
int fgetc(FILE *f)
{
                /* 等待串口1输入数据 */
                while (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET);

                return (int)USART_ReceiveData(USART2);
}

回复

使用道具 举报

 楼主| 发表于 2015-11-2 16:43:54 | 显示全部楼层
................都没人回答问题的,还好自己敢于尝试,已搞好
回复 支持 反对

使用道具 举报

发表于 2015-11-2 19:28:07 | 显示全部楼层
这里都写好了。。。
http://www.firebbs.cn/thread-8673-1-1.html
回复 支持 反对

使用道具 举报

发表于 2015-11-2 19:28:18 | 显示全部楼层
这里都写好了。。。
http://www.firebbs.cn/thread-8673-1-1.html
回复 支持 反对

使用道具 举报

发表于 2015-11-3 22:48:16 | 显示全部楼层
不只是路人 发表于 2015-11-2 16:43
................都没人回答问题的,还好自己敢于尝试,已搞好

分享下,错误在哪里呀?
回复 支持 反对

使用道具 举报

发表于 2016-3-29 11:25:53 | 显示全部楼层
USART2时钟不对
回复 支持 反对

使用道具 举报

发表于 2016-3-29 16:56:31 | 显示全部楼层
RCC_APB2PeriphClockCmd(RCC_APB1Periph_USART2 | RCC_APB2Periph_GPIOA, ENABLE);错了,USART2应该开APB1的时钟。
回复 支持 反对

使用道具 举报

发表于 2016-5-23 15:36:54 | 显示全部楼层
楼主,求指点,我遇到同样的问题,怎么调都调不出来
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-29 22:15 , Processed in 0.033976 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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