TI论坛
直播中

韩宁

7年用户 275经验值
私信 关注
[问答]

PC与dsp进行串口通信,发送hello时只能显示hlo打断点跑,请问这是为什么?如何解决?

本帖最后由 一只耳朵怪 于 2018-6-25 11:19 编辑

大家好:
  我的板子是EVM6678LE,CCS是v5.0.版本 ,我已经实现了PC与dsp进行串口通信,之前我把发送和接收写在一个线程里时,发现如果发送单个字的时候,可以接收,如果发送一串,比如hello时,就只能显示hlo,,但是,打断点跑,发现hello都已经存进了buf里面。然后,我就把接收和发送用两个线程写了,当发送hellokity的时候,只显示helkt,想问下大家觉得是哪里的问题?还是6678串口有bug?
非常感谢!

回帖(7)

李峰

2018-6-25 06:25:15
引用: xiaokanchenfu 发表于 2018-6-25 06:44
你好,以下是我接收和发送的主程序,您能帮我看下需要完善哪些地方吗?我加了延迟好像还是不行的。
int master_main(void)
[

Task_sleep(50);不是延时函数。。。你自己设计一个延时函数吧。
举报

李峰

2018-6-25 06:34:47
你好,发送字符串时候,中间加些延时试试。就是每一个字符发送完,加一定的延时,再发送下一个字符。
举报

韩宁

2018-6-25 06:44:25
引用: kingnet_52004 发表于 2018-6-25 06:34
你好,发送字符串时候,中间加些延时试试。就是每一个字符发送完,加一定的延时,再发送下一个字符。

你好,以下是我接收和发送的主程序,您能帮我看下需要完善哪些地方吗?我加了延迟好像还是不行的。
int master_main(void)
[
int res;
uint8_t buf;
res=platform_uart_init();
res=platform_uart_set_baudrate(9600);
platform_write_configure(PLATFORM_WRITE_PRINTF);
while(1)
[
res=platform_uart_read(&buf,1);
Task_sleep(100);
if(res==Platform_EOK)
[
platform_uart_write(buf);
]
Task_sleep(50);
]
]
谢谢
举报

李峰

2018-6-25 06:52:43
引用: xiaokanchenfu 发表于 2018-6-25 06:44
你好,以下是我接收和发送的主程序,您能帮我看下需要完善哪些地方吗?我加了延迟好像还是不行的。
int master_main(void)
[

你好,单步的时候,如果buf已经是你要写入的字符串了,那么问题在platform_uart_write(buf);函数里。
你要查看一下这个函数的用法。。。看他设计的时候是不是用来发字符串的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分