TI中文支持网
TI专业的中文技术问题搜集分享网站

求解答:dsp6678串口通信时一些问题。

大家好:

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

非常感谢!

mao chen:

回复 noaming:

你好,以下是我接收和发送的主程序,您能帮我看下需要完善哪些地方吗?我加了延迟好像还是不行的。

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); }}

谢谢

noaming:

回复 mao chen:

你好,单步的时候,如果buf已经是你要写入的字符串了,那么问题在platform_uart_write(buf);函数里。

你要查看一下这个函数的用法。。。看他设计的时候是不是用来发字符串的。

noaming:

回复 noaming:

原函数:

Platform_STATUS platform_uart_write(uint8_t buf){ UartWriteData(buf);

return Platform_EOK;}

UartWriteData(buf);函数:

/****************************************************************************** * * Function: UartWriteData * * Description: This function writes a byte of data to UART device * * Parameters: uint8_t uchAddress – Address of 8-bit register * uint8_t uchByte – 8-bit data to write to THR * * Return Value: none ******************************************************************************/void UartWriteData(uint8_t uchByte)

{ while (!(CSL_FEXT(hUartRegs->LSR, UART_LSR_THRE))) { platform_delaycycles(10000); } CSL_FINS(hUartRegs->THR, UART_THR_DATA, uchByte); return;}

所以说,这个函数设计的时候,就是用来发送一个字节的字符的。

noaming:

回复 mao chen:

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

mao chen:

回复 noaming:

谢谢你,我在改改我的程序,不懂在问你。

chen xie:

回复 noaming:

麻烦问一下链接里的问题http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/31537.aspx

赞(0)
未经允许不得转载:TI中文支持网 » 求解答:dsp6678串口通信时一些问题。
分享到: 更多 (0)