Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30620
  • 博文数量: 6
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-03 19:49
文章分类

全部博文(6)

文章存档

2014年(6)

我的朋友

分类: C/C++

2014-03-07 16:29:56

为这个量的赋值非常隐蔽,本人找了好久才搞定,功夫不负有心人!!!
 

uint16 HalUARTWrite(uint8 port, uint8 *buf, uint16 len)
...
#if (HAL_UART_DMA == 1)
  if (port == HAL_UART_PORT_0)  return HalUARTWriteDMA(buf, len);
#endif
...
---->
static uint16 HalUARTWriteDMA(uint8 *buf, uint16 len)
{
  uint16 cnt;
  halIntState_t his;
  uint8 txSel;
#if HAL_UART_DMA_TX_MAX < 256
  uint8 txIdx;
#else
  uint16 txIdx;
#endif
... 
---->
#define HAL_UART_DMA_TX_MAX        MT_UART_DEFAULT_MAX_TX_BUFF 
---->
#if !defined( MT_UART_DEFAULT_MAX_TX_BUFF )
  #define MT_UART_DEFAULT_MAX_TX_BUFF    MT_UART_TX_BUFF_MAX 
---->
#define MT_UART_TX_BUFF_MAX  128 
****************************************************************
****************************************************************
uint16 HalUARTRead(uint8 port, uint8 *buf, uint16 len)
...
#if (HAL_UART_DMA == 1)
  if (port == HAL_UART_PORT_0)  return HalUARTReadDMA(buf, len);
#endif

... 
---->
static uint16 HalUARTReadDMA(uint8 *buf, uint16 len)
{
  uint16 cnt;
  for (cnt = 0; cnt < len; cnt++)
  {
    if (!HAL_UART_DMA_NEW_RX_BYTE(dmaCfg.rxHead))
    {
      break;
    }
    *buf++ = HAL_UART_DMA_GET_RX_BYTE(dmaCfg.rxHead);
    HAL_UART_DMA_CLR_RX_BYTE(dmaCfg.rxHead);
    if (++(dmaCfg.rxHead) >= HAL_UART_DMA_RX_MAX)
    {
      dmaCfg.rxHead = 0;
    }
  }
  PxOUT &= ~HAL_UART_Px_RTS;  // Re-enable the flow on any read.
  return cnt;
}
 
---->
#define HAL_UART_DMA_RX_MAX        MT_UART_DEFAULT_MAX_RX_BUFF 
---->
#define MT_UART_DEFAULT_MAX_RX_BUFF      MT_UART_RX_BUFF_MAX 
---->
#define MT_UART_RX_BUFF_MAX  128 

結論:
在串口互發中定義的是128.。

deebug20140307
ccnu
 
阅读(2087) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~