搜索
bottom↓
回复: 8

LPC1788串口问题

[复制链接]

出0入4汤圆

发表于 2014-12-15 12:28:50 | 显示全部楼层 |阅读模式
用1788串口0打印如下
for(qwe=0;qwe<255;qwe++)
{
  UART_SendByte((UART_ID_Type)0,'q');
}               
结果串口终端只显示16个,发现这个问题是测试其DMA接收问题,发32个数组其也只能发送16个字节。
查询了1788数据手册发现如图其FIFO只有16字节,这么坑爹啊!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-12-15 13:31:40 | 显示全部楼层
楼主不知道有个东西叫缓冲队列吗?

出0入0汤圆

发表于 2014-12-15 13:58:49 | 显示全部楼层
请楼主移步看一下:http://www.amobbs.com/thread-4788975-1-1.html

出0入0汤圆

发表于 2014-12-15 14:11:07 | 显示全部楼层
我使用的没有问题,如下:
void UART3_SendByte(uint8_t c)
{
   while(0==(LPC_UART3->LSR&(0x01<<6)));                //µÈ´ý´®¿Ú¿ÕÏÐ
   LPC_UART3->THR=c;                                                                  //½«·¢ËÍ×Ö·ûдÈë·¢Ëͱ£³Ö¼Ä´æÆ÷
}

出0入0汤圆

发表于 2014-12-15 14:32:46 | 显示全部楼层
发送完再接着发。
你以为FIFO是无限制的吗?

出0入0汤圆

发表于 2014-12-15 14:33:06 | 显示全部楼层
我还发1024字节呢。



  

出0入4汤圆

 楼主| 发表于 2014-12-15 15:38:27 | 显示全部楼层
tiger5 发表于 2014-12-15 14:33
我还发1024字节呢。

用Printf是没有任何问题的

出0入4汤圆

 楼主| 发表于 2014-12-15 17:04:05 | 显示全部楼层
tiger5 发表于 2014-12-15 14:33
我还发1024字节呢。

我懂了,其实库函数下面还有个UART_Send((UART_ID_Type)0,DMADest_Buffer,32,BLOCKING);
每send一个Byte就FIFO清空一下,

出0入0汤圆

发表于 2014-12-16 08:38:45 | 显示全部楼层
suebillt 发表于 2014-12-15 17:04
我懂了,其实库函数下面还有个UART_Send((UART_ID_Type)0,DMADest_Buffer,32,BLOCKING);
每send一个Byte ...

FIFO触发中断字节可选择,你看一下数据手册。一般一次发不完,接着把字节放FIFO,再触发中断发送。
PRINTF是查询发送,等等寄存器发送完成,接着发。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 21:59

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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