微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 2540 串口设置

2540 串口设置

时间:10-02 整理:3721RD 点击:

void serialAppInitTransport( )
{

halUARTCfg_t uartConfig;

  // configure UART
  uartConfig.configured           = TRUE;
  uartConfig.baudRate             = SBP_UART_BR;//波特率
  uartConfig.flowControl          = SBP_UART_FC;//流控制
  uartConfig.flowControlThreshold = SBP_UART_FC_THRESHOLD;//流控制阈值,当开启flowControl时,该设置有效
  uartConfig.rx.maxBufSize        = SBP_UART_RX_BUF_SIZE;//uart接收缓冲区大小
  uartConfig.tx.maxBufSize        = SBP_UART_TX_BUF_SIZE;//uart发送缓冲区大小
  uartConfig.idleTimeout          = SBP_UART_IDLE_TIMEOUT;
  uartConfig.intEnable            = SBP_UART_INT_ENABLE;//是否开启中断
  uartConfig.callBackFunc         = sbpSerialAppCallback;//uart接收回调函数,在该函数中读取可用uart数据

(void)HalUARTOpen( SBP_UART_PORT, &uartConfig );

return ;

}

我想问下,这里除了上述的一些参数设置,我想把奇偶校验位和停止位加进去的话该怎么做?

串口初始化后我想把例如波特率、流控、停止位等等的参数在程序中读取出来打印在屏幕上,有没有例如SimpleProfile_GetParameter()这种直接读取的接口?

同样,如果我在程序中要对当前的参数改变的话有无接口?没有的话只能再次调用void serialAppInitTransport( )这个串口初始化函数么?

 

我现在的方法是将参数存取在flash中,设置和读取是都是读写flash里的值,我想问下有没有其他方法。

jason,

你找一下npi.c 这个文件里面的串口驱动初始化函数。

flash中专门开辟出来了NV段用于存放客户需要的数据,不知道你还有啥特殊要求?


/* Stop Bits */
#define HAL_UART_ONE_STOP_BIT       0x00
#define HAL_UART_TWO_STOP_BITS      0x01

/* Parity settings */
#define HAL_UART_NO_PARITY          0x00
#define HAL_UART_EVEN_PARITY        0x01
#define HAL_UART_ODD_PARITY         0x02

在hal_uart.h里有上面这些设置,但不知道怎么用

typedef struct
{
  bool                configured;
  uint8               baudRate;
  bool                flowControl;
  uint16              flowControlThreshold;
  uint8               idleTimeout;
  halUARTBufControl_t rx;
  halUARTBufControl_t tx;
  bool                intEnable;
  uint32              rxChRvdTime;
  halUARTCBack_t      callBackFunc;
}halUARTCfg_t;

这个结构体也是定义好的

我看了下,发现对uart的设置实际上就是对单片机寄存器的设置,所有的初始化接口不过是对其进行了封装,所以我去改变寄存器的值就好了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top