打印
[STM32F4]

串口异常问题

[复制链接]
360|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zwll|  楼主 | 2021-1-12 23:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我才采用的是STM32F4串口打印,我给固定printf("1");串口调试助手输出却一直是g

使用特权

评论回复
沙发
songqian17| | 2021-1-12 23:06 | 只看该作者

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
zwll|  楼主 | 2021-1-12 23:11 | 只看该作者
具体代码如下:
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);
  }

请问问题一般怎么找?

使用特权

评论回复
地板
chuxh| | 2021-1-12 23:13 | 只看该作者
硬件问题

使用特权

评论回复
5
yinxiangh| | 2021-1-12 23:18 | 只看该作者
直接用示波器或逻辑分析仪测单片机TX管脚的波形,看波特率、数据位是否都正确。

使用特权

评论回复
6
xxmmi| | 2021-1-12 23:21 | 只看该作者
发数据应该发一些特殊的:0x01,0x08,0xAA,0x55,0x00,0xFF等

使用特权

评论回复
7
tian111| | 2021-1-12 23:23 | 只看该作者

这个问题因该可以通过示波器观察一下

使用特权

评论回复
8
yufe| | 2021-1-12 23:26 | 只看该作者
首先要找到是发送方的问题还是接收方的问题

使用特权

评论回复
9
zhanglli| | 2021-1-12 23:28 | 只看该作者
示波器先抓一下信号波形分析下。

使用特权

评论回复
10
chuxh| | 2021-1-12 23:33 | 只看该作者
232电平肯定是反的,但你似乎还要经过一次转换才能到达接收端呀

使用特权

评论回复
11
zwll|  楼主 | 2021-1-12 23:37 | 只看该作者

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

使用特权

评论回复
12
aoyi| | 2021-2-4 16:43 | 只看该作者
字符转换的问题吧

使用特权

评论回复
13
drer| | 2021-2-4 16:44 | 只看该作者
主要看看你发的到底是什么

使用特权

评论回复
14
gwsan| | 2021-2-4 16:45 | 只看该作者
估计是发送的有问题

使用特权

评论回复
15
kxsi| | 2021-2-4 16:49 | 只看该作者
用示波器看看波形

使用特权

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

本版积分规则

885

主题

11314

帖子

5

粉丝