天嵌 ARM开发社区

 找回密码
 注册
查看: 5825|回复: 5

请教个TQ2440串口发数据的问题

[复制链接]
jiang11 发表于 2012-3-12 11:37:20 | 显示全部楼层 |阅读模式
使用 apps\Serial_Test\serial_test.c代码,用串口一发送数据 0x00--0xFF
串口配置如下
DEV=/dev/tq2440_serial0
SPEED=115200
DATABITS=8
STOPBITS=1
PARITY=N

接收端接到的数据如下,跟发送的不一致。
我换了各种波特率,接收的都是这种数据,不知道问题在哪里,请指教
00 01 02 03 04 05 06 07 08 09 0D 0A 0B 0C 0A 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE BF
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
D0 D1 D2 D3 D4 D5 D6 F7 D8 D9 DA DB DC DD DE
TQ-lkp 发表于 2012-3-13 09:11:29 | 显示全部楼层
将源码中定义的char buffer[512]修改为unsigned char buffer[512],即可
回复

使用道具 举报

 楼主| jiang11 发表于 2012-3-14 12:12:44 | 显示全部楼层
我试了,不行的。还是老样子。
0x09跟0x0A之间多了个0x0D,好像是0x0A变成了0x0D 0x0A,感觉像是UNIX格式换行变成了DOS格式的回车换行。
从0x61开始变成了0x41
0x61是字符'a',
我打开串口0,上电之后,是有内核启动信息输出到串口1的,这些信息就含有字符'a'
为什么内核启动的时候能发送'a',而我用程序发送'a'就变成了0x41
串口0,默认会当作控制台使用,是不是系统有什么特别处理的地方?
回复

使用道具 举报

 楼主| jiang11 发表于 2012-3-14 12:27:03 | 显示全部楼层
原来0x41是'A',串口0把小写字符都转大写了
不知道这个是不是要改驱动呢
回复

使用道具 举报

 楼主| jiang11 发表于 2012-3-14 13:45:35 | 显示全部楼层
linux-2.6.30.4\drivers\serial\serial_core.c中找到这样一段代码,应该就是0x0A转成0x0D 0x0A的地方
是不是要重新编译驱动?
#if defined(CONFIG_SERIAL_CORE_CONSOLE) || defined(CONFIG_CONSOLE_POLL)
/*
*        uart_console_write - write a console message to a serial port
*        @port: the port to write the message
*        @s: array of characters
*        @count: number of characters in string to write
*        @write: function to write character to port
*/
void uart_console_write(struct uart_port *port, const char *s,
                        unsigned int count,
                        void (*putchar)(struct uart_port *, int))
{
        unsigned int i;

        for (i = 0; i < count; i++, s++) {
                if (*s == '\n')
                        putchar(port, '\r');
                putchar(port, *s);
        }
}
EXPORT_SYMBOL_GPL(uart_console_write);
回复

使用道具 举报

wb686 发表于 2013-1-30 23:32:39 | 显示全部楼层
兄弟你这个程序是在哪儿找的,能分享下吗?
回复

使用道具 举报

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

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-10-21 07:01 , Processed in 2.113773 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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