用TM4C129 串口发送数据只能一次发送不多于9个字节,超过9个字节也能发出去,但是之后就不能再发数据了。用的UARTCharPut函数,循环发送,循环9次之后必须要等一段时间再发,才能正常发出,这是什么原因呢?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
用TM4C129 串口发送数据只能一次发送不多于9个字节,超过9个字节也能发出去,但是之后就不能再发数据了。用的UARTCharPut函数,循环发送,循环9次之后必须要等一段时间再发,才能正常发出,这是什么原因呢?
你好,用的uart0,阻塞方式,在enet_s2e这个项目里改的程序。一个串口任务里,每隔一段时间循环发送9个字节没问题,如果循环发送10个字节,就只能发出去一次,之后就发不出去了,电脑的串口调试助手只能收到10个字节,代码如下:
static void SerialTask(void *pvParameters)
{
int i=0, j=0, m;
int v[MAX_S2E_PORTS];
while(1)
{
for(j=0; j<30000; j++)
{
m=5;
}
for(i=0;i<9;i++)//改成10就只能发出1次10字节,之后发送不出去了
{
UARTCharPut(g_ui32UARTBase[0], i);
}
}
示例程序用的是UART3和4。我用的是UART0和1。我发现中断处理函数在startup_rvmdk.S里声明的地方要换一下。要改成:
DCD SerialPort0IntHandler ; UART0 Rx and Tx
DCD SerialPort1IntHandler ; UART1 Rx and Tx
。。。
DCD IntDefaultHandler ; UART3 Rx and Tx
DCD IntDefaultHandler ; UART4 Rx and Tx
这个可以在startup_rvmdk.S文件里直接改吗?