打印

关于串口发送字符串的问题

[复制链接]
2995|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hqr1021|  楼主 | 2013-4-14 19:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hqr1021 于 2013-4-14 19:56 编辑

本人在校小菜鸟一枚,在调试stm32串口的程序时,发现一个让我很无奈的问题。
void USART1_IRQHandler(void)
{
        u8 c;
        if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
        {         
            c=USART1->DR;
                  printf("%c",c);   
        }         
}
既stm32读取字符串(其实是分N次收到一个字符),立刻发送出去,返回给PC。
问题在于,如果我用电脑主板的串口com1(默认),用众多串口调试软件都是显示乱码(发送字符除外),
但是用了RS232转USB,用USB作为com口,串口调试软件均正常。
我的猜想是串口上的问题,请问各位前辈们到底这到底是怎么回事?
PS:我在51单片机写了一个相似的程序,现象一致。stm32用的是max3232,51用的是max232.

相关帖子

沙发
diweo| | 2013-4-15 06:54 | 只看该作者
有没有以16进制显示看看到底发的什么东西?

使用特权

评论回复
板凳
ayb_ice| | 2013-4-15 07:51 | 只看该作者
串口设置对了没有

使用特权

评论回复
地板
hqr1021|  楼主 | 2013-4-20 00:43 | 只看该作者
diweo 发表于 2013-4-15 06:54
有没有以16进制显示看看到底发的什么东西?

按照你的方法做了,如果发单字符,串口助手发送和接收一致。但发两个以上字符基本上是不一致。如果重复发送字符串,那么串口助手接收显示的16进制具有随机性(与发送不一致)

使用特权

评论回复
5
hqr1021|  楼主 | 2013-4-20 00:46 | 只看该作者
ayb_ice 发表于 2013-4-15 07:51
串口设置对了没有

请问怎么设置呢?我已经把com1(主板默认串口)变成与单片机波特率相同,仍然不行。

使用特权

评论回复
6
ayb_ice| | 2013-4-20 08:59 | 只看该作者
hqr1021 发表于 2013-4-20 00:46
请问怎么设置呢?我已经把com1(主板默认串口)变成与单片机波特率相同,仍然不行。 ...

数据长度,奇偶检验等

使用特权

评论回复
7
hqr1021|  楼主 | 2013-4-20 09:32 | 只看该作者
ayb_ice 发表于 2013-4-20 08:59
数据长度,奇偶检验等

上面是电脑管理设备COM设置,下面是串口助手设置,请问哪里还需要设置?

Unnamed.jpg (20.49 KB )

Unnamed.jpg

使用特权

评论回复
8
diweo| | 2013-4-20 20:07 | 只看该作者
程序里面的寄存器设置是否和上图一致?

使用特权

评论回复
9
hqr1021|  楼主 | 2013-4-20 20:55 | 只看该作者
diweo 发表于 2013-4-20 20:07
程序里面的寄存器设置是否和上图一致?

一致的,不一致我用串口转USB,应该不会出现正常情况。我的情况是串口转USB通信正常,但直接用串口通信不正常,所以让我很在意。。。但知识有限,特别是硬件知识。故求教前辈们。

使用特权

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

本版积分规则

2

主题

6

帖子

1

粉丝