TI CC2541的串口输出.

http://blog.csdn.net/feilusia/article/details/47431659

 

基本上看上面这个博客的.

 

重点是:

1. 关闭流控, 在npi.h里面, 将

#define NPI_UART_FC                    FALSE

设置成FALSE就行.

 

2. 在IAR的编译处理里面, 将HAL_UART=TRUE加进去, 同时确定没有POWER_SAVE

 

需要注意, 不要写成HAL_UART=TURE, 别问我为什么.

 

3.在simpleBLEPeripherval.c里面把npi.h加进去.

然后增加串口的回调函数, 当然先申明, 再定义:

 

static void NpiSerialCallback( uint8 port, uint8 events )
{
    (void)port;

    if (events & (HAL_UART_RX_TIMEOUT | HAL_UART_RX_FULL))   
    {
        uint8 numBytes = 0;

        numBytes = NPI_RxBufLen();           
        
        if(numBytes == 0)
        {
            return;
        }
        else
        {
            
            uint8 *buffer = osal_mem_alloc(numBytes);
            if(buffer)
            {
                  
                NPI_ReadTransport(buffer,numBytes);   

                
                NPI_WriteTransport(buffer, numBytes);  

                
                osal_mem_free(buffer);
            }
        }
    }
}

 

4. 最后一步, 在Init函数中, 测试一下, 看看能不能再默认115200这个波特(大)率看到串口的输出.

 

void SimpleBLEPeripheral_Init( uint8 task_id )

  simpleBLEPeripheral_TaskID = task_id;  
  NPI_InitTransport(NpiSerialCallback);
  NPI_WriteTransport("SimpleBLETest_Init\r\n", 20);

...

 

由于没有买内个所谓的好用的OLED的屏幕, 串口输出还是很重要的, 为下一步的任何连接测试也好, 发送数据也好, 创造了必要条件, 不然谁知道你发了什么屁给从机, 对吧?

posted @ 2016-05-24 15:02  Montauk  阅读(941)  评论(0)    收藏  举报