打印

串口重映射不能收发

[复制链接]
1969|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
examdog|  楼主 | 2013-1-25 20:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
  
  GPIO_PinRemapConfig(GPIO_FullRemap_USART3, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOC, &GPIO_InitStructure);
   
    USART_InitTypeDef USART_InitStructure;
    /* USART3 configured as follow:
          - BaudRate = 9600 baud
          - Word Length = 8 Bits
          - One Stop Bit
          - No parity
          - Hardware flow control disabled (RTS and CTS signals)
          - Receive and transmit enabled
    */
    USART_InitStructure.USART_BaudRate = 9600;
    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;

    /* Configure the USART3*/
    USART_Init(USART3, &USART_InitStructure);


   // USART_ITConfig(USART3, USART_IT_TXE, ENABLE);
    //USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);

    /* Enable the USART3 */
    USART_Cmd(USART3, ENABLE);

收发都不好使,不知道是为什么
沙发
uet_cache| | 2013-1-25 20:32 | 只看该作者
不好使是什么意思 ,是不能收发数据还是你的通讯时容易出错 ,,,?

使用特权

评论回复
板凳
examdog|  楼主 | 2013-1-25 22:30 | 只看该作者
uet_cache 发表于 2013-1-25 20:32
不好使是什么意思 ,是不能收发数据还是你的通讯时容易出错 ,,,?

不能收也不能发

使用特权

评论回复
地板
uet_cache| | 2013-1-26 09:22 | 只看该作者
不能收发,应该是你程序配置还没对

使用特权

评论回复
5
杨爱林林| | 2013-1-26 09:36 | 只看该作者
很奇怪哦  配置没什么问题
再看看你的收发函数  
在发送和接收时 看看寄存器的变化

使用特权

评论回复
6
examdog|  楼主 | 2013-1-26 10:18 | 只看该作者
杨爱林林 发表于 2013-1-26 09:36
很奇怪哦  配置没什么问题
再看看你的收发函数  
在发送和接收时 看看寄存器的变化  ...

没用中断,就在主函数里用while(1){USART_SendData()}这样发送的,管脚没有输出,用示波器测了,用串口调试助手发送,信号到管脚,但是收不到

使用特权

评论回复
7
杨爱林林| | 2013-1-26 11:10 | 只看该作者
examdog 发表于 2013-1-26 10:18
没用中断,就在主函数里用while(1){USART_SendData()}这样发送的,管脚没有输出,用示波器测了,用串口 ...

换这句试试看
GPIO_PinRemapConfig(GPIO_PartialRemap_USART3,ENABLE);   

使用特权

评论回复
8
goldsun_| | 2013-1-26 11:45 | 只看该作者
IO口定义错了

使用特权

评论回复
9
goldsun_| | 2013-1-26 11:47 | 只看该作者
网站都有现成的例程,在人家的例程基础上,你再修改。

使用特权

评论回复
10
examdog|  楼主 | 2013-1-26 14:58 | 只看该作者
可以结了,是硬件问题,多谢各位了

使用特权

评论回复
11
jy02326166| | 2013-2-7 17:26 | 只看该作者
examdog 发表于 2013-1-26 14:58
可以结了,是硬件问题,多谢各位了

是什么问题,我的USART1重映射无法收发。。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
examdog + 2
12
examdog|  楼主 | 2013-9-11 17:01 | 只看该作者
用示波器看的,数据过不来,数据线始终是高电平

使用特权

评论回复
13
cjhk| | 2013-9-11 19:01 | 只看该作者
是否是端口配置的问题    有可能是端口配置错误了  楼主

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

59

帖子

2

粉丝