在线时间42 小时
UID3397665
注册时间2017-6-26
NXP金币0
TA的每日心情 | 奋斗 2018-7-12 20:45 |
---|
签到天数: 75 天 连续签到: 1 天 [LV.6]常住居民II
中级会员
 
- 积分
- 441
- 最后登录
- 2018-10-25
|
本帖最后由 NXP+LPC+FSL 于 2017-7-5 10:50 编辑
最近看了sdk,配置串口5玩玩,可是发出来的数据只有16个字节,后面的数据没发出来。
小于16字节的数据可以正常发
看了下可能和 fifo有关,这个怎么配置成 普通的模式,不要fifo,,大于16字节的数据也可以发送。。。
我现在跳了好久,单片机往外部 发数据,发不全啊,有没有参考啊,,,sdk的好像不行
我的配置如下:
- usart_config_t config;
-
- /* attach 12 MHz clock to FLEXCOMM5 */
- CLOCK_AttachClk(BOARD_UART5_CLK_ATTACH);
- /* reset FLEXCOMM for USART5 */
- RESET_PeripheralReset(BOARD_UART5_RST);
-
- USART5_InitPins();
- USART_GetDefaultConfig(&config);
- config.baudRate_Bps = BAUDRATE_115200;
- config.enableTx = true;
- config.enableRx = true;
- USART_Init(LPC_USART, &config, CLOCK_GetFreq(kCLOCK_Flexcomm5));
- USART_EnableInterrupts(LPC_USART, kUSART_RxLevelInterruptEnable | kUSART_RxErrorInterruptEnable);
-
- EnableIRQ(LPC_USART_IRQn);
复制代码 然后发送函数
- void USART5_Send(char * buf1)
- {
- uint8_t i=0;
- while (1)
- { if (buf1[i]!=0)
- { USART_WriteByte(LPC_USART, buf1[i]);
- while(kUSART_TxFifoEmptyFlag & USART_GetStatusFlags(LPC_USART));
-
- i++;
- }
- else return;
- }
- }
复制代码
最多只能发送16字节
USART5_Send("01234567890123456789\r\n");
最佳答案
首先你可以在debug的情况下,看看代码在输出16字节后停在哪里了,还有我建议在写入FIFO之前首先判断FIFO是否未满,而不是判断其为空,未满就就写入到FIFOWR寄存器中。 ...
|
|