OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8662|回复: 11

串口2初始化后一直会输出00 00 00这样的字符

[复制链接]

10

主题

28

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-5-19
在线时间
14 小时
发表于 2016-6-27 16:40:50 | 显示全部楼层 |阅读模式
5金钱
按照串口1的教程初始化了串口2,串口2发送数据,电脑的串口调试助手在十六进制显示时会一直显示有00 00 00 00 00 从串口2发出,查找了很久一直没有找到原因,求大家帮忙看看
void My_USART2_Init(void)
{
        GPIO_InitTypeDef  GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE);
        USART_DeInit(USART2);
       
        GPIO_PinAFConfig(GPIOD,GPIO_PinSource5,GPIO_AF_USART2);
        GPIO_PinAFConfig(GPIOD,GPIO_PinSource6,GPIO_AF_USART2);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
       
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
       
        USART_InitStructure.USART_BaudRate=115200;
        USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
        USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
        USART_InitStructure.USART_Parity=USART_Parity_No;
        USART_InitStructure.USART_StopBits=USART_StopBits_1;
        USART_InitStructure.USART_WordLength=USART_WordLength_8b;
        USART_Init(USART2,&USART_InitStructure);
       
        USART_Cmd(USART2 ,ENABLE);

        USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);
       
        NVIC_InitStructure.NVIC_IRQChannel=USART2_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
        NVIC_Init(&NVIC_InitStructure);
}

void USART2_IRQHandler(void)
{
        u8 res;
        if(USART_GetITStatus(USART2,USART_IT_RXNE)){
               
                res=USART_ReceiveData(USART2);
                USART_SendData(USART2,res);
        }

}


/*****************  发送一个字符 **********************/
static void Usart_SendByte( USART_TypeDef * pUSARTx, uint8_t ch )
{
        /* 发送一个字节数据到USART1 */
        USART_SendData(pUSARTx,ch);
               
        /* 等待发送完毕 */
        while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);       
}

/*****************  发送字符串 **********************/
void Usart_SendString( USART_TypeDef * pUSARTx, uint8_t *str)
{
        unsigned int k=0;
    do
    {
        Usart_SendByte( pUSARTx, *(str + k) );
        k++;
    } while(*(str + k)!='\0');
}

int main(void)
{
        u8 times=0;
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        My_USART2_Init();

        while(1)
        {
                if(times<=10)
                {
                        Usart_SendString( USART2, (uint8_t *)"ATD18868875103;\r\n" );
                        times++;
                }
        }
}


8D80.tmp.jpg

最佳答案

查看完整内容[请看2#楼]

接收端外加上拉电阻,或者设置为上拉输入模式,可解决。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1067
金钱
1067
注册时间
2012-1-7
在线时间
157 小时
发表于 2016-6-27 16:40:51 | 显示全部楼层
接收端外加上拉电阻,或者设置为上拉输入模式,可解决。
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-6-27 16:43:19 | 显示全部楼层
如果用的开发板的看一下串口2的跳线帽有没有设置正确
回复

使用道具 举报

10

主题

28

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-5-19
在线时间
14 小时
 楼主| 发表于 2016-6-27 18:32:40 | 显示全部楼层
zuozhongkai 发表于 2016-6-27 16:43
如果用的开发板的看一下串口2的跳线帽有没有设置正确

跳线帽应该没问题,因为串口2能输出字符,但是除了输出设定的字符外,它还会自动输出00 00
回复

使用道具 举报

10

主题

28

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-5-19
在线时间
14 小时
 楼主| 发表于 2016-6-27 19:11:49 | 显示全部楼层
大神帮我看看我的串口2初始化有没有错误。。万分感谢
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2016-6-27 23:30:09 | 显示全部楼层
我们开发板就有串口2的例子啊,你买的哪个开发板?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

10

主题

28

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-5-19
在线时间
14 小时
 楼主| 发表于 2016-6-28 09:30:23 | 显示全部楼层
正点原子 发表于 2016-6-27 23:30
我们开发板就有串口2的例子啊,你买的哪个开发板?

我没找到F407有串口2的教程?麻烦能给我一个连接吗
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2016-7-2 23:05:03 | 显示全部楼层
袁小远 发表于 2016-6-28 09:30
我没找到F407有串口2的教程?麻烦能给我一个连接吗

http://www.openedv.com/thread-13912-1-1.html
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

87

主题

331

帖子

0

精华

高级会员

Rank: 4

积分
906
金钱
906
注册时间
2016-3-26
在线时间
116 小时
发表于 2016-7-3 10:54:32 | 显示全部楼层
袁小远 发表于 2016-6-28 09:30
我没找到F407有串口2的教程?麻烦能给我一个连接吗

你说的是连续发000000还是上电掉电复位的时候发?
是一直发?
回复

使用道具 举报

34

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1067
金钱
1067
注册时间
2012-1-7
在线时间
157 小时
发表于 2016-8-29 13:48:29 | 显示全部楼层
请问,这个问题解决了吗?
回复

使用道具 举报

4

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2016-8-21
在线时间
20 小时
发表于 2016-10-12 10:39:06 来自手机 | 显示全部楼层
楼主的问题解决了没有啊?我也是这样的问题,什么原因啊?
回复

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2019-3-18
在线时间
24 小时
发表于 2020-1-15 11:59:23 | 显示全部楼层
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE);

GPIOD不是在AHB2上吗,D的始终没开
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-11 15:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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