Lpc3250串口驱动遇到的问题

来源:互联网 发布:cf礼包领取软件 编辑:程序博客网 时间:2024/04/30 04:04

1、从数据手册上可以看到,串口4是有多功能引脚设置的,所以打开串口4的时候必须要配置多功能引脚,否则,串口4就没有反应:

P2_MUX_SET |= (1 << 2);

2、串口6是红外线功能,要使用串口六就必须要屏蔽红外线模式,否则没有反应

UART_CTRL = UART_CTRL | (1 << 5);

3、串口驱动中断的函数中,在实验中遇到两个问题:

第一个问题,当发送的数据个数大于缓冲区的大小是,接收到的数据全是0;这个问题的根源是在中断处理函数中当接收数据的指针覆盖了提取数据的指针,处理的办法是当接收的指针等于提取数据的指针时就把提取的指针加1

if(uRxSaveIndex[3] == uRxTakeIndex[3])

{

uRxTakeIndex[3]++;

if(uRxTakeIndex[3] >= BUFFLENGTH - 1)

{

uRxTakeIndex[3] = 0;

}

}

第一问题解决之后又遇到了第二个问题:比如设计缓冲区的数据位为1024,如果用户一次性发送的数据量大于或等于1024时,就会丢失数据,解决的办法是把缓冲区开大些,然后告诉用户不要一次性发送的最大数据是多少。

原创粉丝点击