打印
[STM32F4]

串口异常问题

[复制链接]
529|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gujiahui|  楼主 | 2019-3-6 11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我才采用的是STM32F4串口打印,我给固定printf("1");串口调试助手输出却一直是g,具体代码如下:
void USART1_Config()
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        //NVIC_InitTypeDef NVIC_InitStructure;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
//        USART_DeInit(USART1);
       
        GPIO_InitStructure.GPIO_Pin    = GPIO_Pin_6;
        GPIO_InitStructure.GPIO_Mode   = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Speed  = GPIO_Fast_Speed;
        GPIO_InitStructure.GPIO_OType  = GPIO_OType_PP;
       
        GPIO_InitStructure.GPIO_PuPd   = GPIO_PuPd_UP;
       
        GPIO_Init(GPIOB, &GPIO_InitStructure);
       
                GPIO_InitStructure.GPIO_Pin    = GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Mode   = GPIO_Mode_IN;
        GPIO_InitStructure.GPIO_Speed  = GPIO_Fast_Speed;
        GPIO_InitStructure.GPIO_OType  = GPIO_OType_PP;
       
        GPIO_InitStructure.GPIO_PuPd   = GPIO_PuPd_UP;
       
        GPIO_Init(GPIOB, &GPIO_InitStructure);
       
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource6,GPIO_AF_USART1);
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource7,GPIO_AF_USART1);
       
//         NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
//         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//ÇÀÕ¼ÓÅÏȼ¶3
//         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;                //×ÓÓÅÏȼ¶3
//         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQͨµÀʹÄÜ
//         NVIC_Init(&NVIC_InitStructure);        //¸ù¾ÝÖ¸¶¨µÄ²ÎÊý³õʼ»¯VIC¼Ä´æÆ÷
               
        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_Tx | USART_Mode_Rx;
       
        USART_Init(USART1, &USART_InitStructure);
//        USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
        USART_Cmd(USART1, ENABLE);
}



        while(1)
        {       
        //printf("%d\r\n",cnt1);
                        printf("1");
//                putchar('1');
//        DAC1_Set_Vol(cnt1);
//                DAC1_Set_Vol(m1);
  }

请问问题一般怎么找?打算最后再考虑硬件问题

沙发
gujiahui|  楼主 | 2019-3-6 12:08 | 只看该作者
我原来的开发板是直接接到单片机IO口,在自己制作的板子上增加了一个max232芯片,是不是因为经过了两块232芯片导致电平翻转了

使用特权

评论回复
板凳
mohanwei| | 2019-3-7 12:01 | 只看该作者
直接用示波器或逻辑分析仪测单片机TX管脚的波形,看波特率、数据位是否都正确。

使用特权

评论回复
地板
mohanwei| | 2019-3-7 12:02 | 只看该作者
发数据应该发一些特殊的:0x01,0x08,0xAA,0x55,0x00,0xFF等

使用特权

评论回复
5
晓伍| | 2019-3-12 09:28 | 只看该作者
这个问题因该可以通过示波器观察一下

使用特权

评论回复
6
xiaoqizi| | 2019-3-12 09:31 | 只看该作者
首先要找到是发送方的问题还是接收方的问题

使用特权

评论回复
7
gtghgbgf| | 2019-3-12 15:02 | 只看该作者
示波器先抓一下信号波形分析下。

使用特权

评论回复
8
kingkits| | 2019-3-12 15:09 | 只看该作者
232电平肯定是反的,但你似乎还要经过一次转换才能到达接收端呀

使用特权

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

本版积分规则

7

主题

34

帖子

0

粉丝