查看: 3516|回复: 3

[分享] K10, UART

[复制链接]

该用户从未签到

1

主题

2

帖子

0

新手上路

Rank: 1

积分
5
最后登录
1970-1-1
发表于 2012-6-19 09:31:38 | 显示全部楼层 |阅读模式
我在用K10的UART做串行通讯时,遇到以下几个问题,向各位大侠请教:
1. 当程序(通过USBDM)下载到芯片之后,在PC机上用通过串口调试软件和串行接口(与芯片的RS232相连接),对串口发送字符时,发现不成功,但是,将USBDM 调试器与芯片的接口断开时,去可以成功地发送和接受字符,不知道这是什么原因?
2. 我在PC机上给利用串口通讯软件,给UART 发送字符,然后让UART把字符发送回来,但是在调试的过程中发现,返回的过程偶尔会中断,将芯片重启,或者断电都无法解决。不知道这又是什么原因?
3. 我参考别人编写的程序,采用查询方式接受和发送字符的语句如下:
   tom = uart0_getchar();
  uart0_putchar(tom + 1);
其中uart0_getchar()和uart0_putchar(tom + 1)的函数如下:
        unsigned char uart0_getchar (void)
        {
        /* Wait until character has been received */
        while (!(UART0_S1 & UART_S1_RDRF_MASK));
        /* Return the 8-bit data from the receiver */
        return UART0_D;
        }
void uart0_putchar (unsigned char data)
        {
        /* Wait until space is available in the FIFO */
        while(!(UART0_S1 & UART_S1_TDRE_MASK));
        /* Send the character */
        UART0_D = data;
        }
我的问题时,为什么接受到的字符 tom ( uart0_getchar();)
  后,发送的字符却为 tom +1  (uart0_putchar(tom + 1);)。
谢谢!
回复

使用道具 举报

该用户从未签到

7

主题

14

帖子

0

新手上路

Rank: 1

积分
134
最后登录
1970-1-1
发表于 2012-6-19 09:43:53 | 显示全部楼层

回复:K10, UART

程序本身没问题,就是验证发送是否成功,发送A,返回B,发送B,返回C,这个可以自己修改。用JTAG下载器,不会出现你说的那个问题。
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

2

帖子

0

新手上路

Rank: 1

积分
5
最后登录
1970-1-1
 楼主| 发表于 2012-6-20 09:29:13 | 显示全部楼层

回复:K10, UART

谢谢楼上的回答。 我想知道为什么串口接受的过程中会中断呢?串口调试软件的问题,还是芯片的UART程序有问题。谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

9

帖子

0

新手上路

Rank: 1

积分
6
最后登录
1970-1-1
发表于 2013-3-24 09:45:55 | 显示全部楼层

回复:K10, UART

 我的不知道为什么也是这样,,,
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-19 09:11 , Processed in 0.085151 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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