/*
 * 初始化UART5模块
 *
 */
void uart_init(void)
{
  uart0_init_struct.UART_Uartx = UART0; //使用UART5
  uart0_init_struct.UART_BaudRate = 9600; //设置波特率9600
  uart0_init_struct.UART_RxPin = PTB16;  //接收引脚为PTE9
  uart0_init_struct.UART_TxPin = PTB17;  //发送引脚为PTE8
  uart0_init_struct.UART_RxIntEnable = TRUE;    //使能接收中断
  uart0_init_struct.UART_RxIsr = uart_isr;      //设置接收中断函数
  //初始化UART
  LPLD_UART_Init(uart0_init_struct);
  //使能UART中断
  LPLD_UART_EnableIrq(uart0_init_struct);
}
Esempio n. 2
0
void uart4_bluetooth_init(void)
{
	uart4_init_struct.UART_Uartx = UART4; //使用UART5
	uart4_init_struct.UART_BaudRate = 115200; //设置波特率115200
	uart4_init_struct.UART_RxPin = PTE25;  //接收引脚为PTE25
	uart4_init_struct.UART_TxPin = PTE24;  //发送引脚为PTE24
	uart4_init_struct.UART_RxIntEnable = TRUE;  //使能接收中断
	uart4_init_struct.UART_RxIsr = uart4_isr;  //设置接收中断函数	
	//初始化UART
	LPLD_UART_Init(uart4_init_struct);
	LPLD_UART_EnableIrq(uart4_init_struct);
	LPLD_UART_PutCharArr(UART4, "Initial uart4 successful.\r\n", 29);
}
Esempio n. 3
0
void uart_interr_init()
{
    UART_InitTypeDef term_port_structure={0};
    
    term_port_structure.UART_Uartx = TERM_PORT;
    term_port_structure.UART_BaudRate = TERMINAL_BAUD;
    term_port_structure.UART_RxPin = PTA15;
    term_port_structure.UART_TxPin = PTA14;
    term_port_structure.UART_RxIntEnable = TRUE;    //使能接收中断
    term_port_structure.UART_RxIsr = uart_isr;      //设置接收中断函数
    LPLD_UART_Init(term_port_structure);
    
    LPLD_UART_EnableIrq(term_port_structure);    //Enable uart interrupt
}
/*
 * 初始化UART5模块
 *
 */
void uart_init(void)
{
  uart5_init_struct.UART_Uartx = UART5;  //使用UART5
  uart5_init_struct.UART_BaudRate = 9600; //设置波特率9600
  uart5_init_struct.UART_RxPin = PTE9;  //接收引脚为PTE9
  uart5_init_struct.UART_TxPin = PTE8;  //发送引脚为PTE8

#if USE_FIFO_Tx_Rx == USE
  uart5_init_struct.RxFIFO.FIFO_Enable = TRUE;
  uart5_init_struct.TxFIFO.FIFO_Enable = TRUE;
  uart5_init_struct.RxFIFO.FIFO_WaterMark = 1;
  uart5_init_struct.RxFIFO.FIFO_BufFlow_IntEnable = TRUE;
  uart5_init_struct.TxFIFO.FIFO_WaterMark = 1;
  uart5_init_struct.TxFIFO.FIFO_BufFlow_IntEnable = TRUE;
#endif
  
#if USE_DMA_Tx_Rx == USE
  uart5_init_struct.UART_RxDMAEnable = TRUE;    //使能接收DMA
  uart5_init_struct.UART_TxDMAEnable = TRUE;    //使能发送DMA
  //配置接收DMA
  uart_rev_dma_init_struct.DMA_CHx = DMA_CH0;                     //选择DMA CH0作为通道
  uart_rev_dma_init_struct.DMA_MajorLoopCnt   = sizeof(recv_ram_buf); //设置计数器长度为数组长度
  uart_rev_dma_init_struct.DMA_MinorByteCnt   = 1;                //设置每次的长度为byte
  uart_rev_dma_init_struct.DMA_MajorCompleteIntEnable = TRUE;     //设置DMA 计数器清零中断
  uart_rev_dma_init_struct.DMA_Req            = UART5_REV_DMAREQ; //设置DMA 请求为 UART rev
  uart_rev_dma_init_struct.DMA_DestAddr       = (uint32)recv_ram_buf; //设置目的地址为 recv_ram_buf
  uart_rev_dma_init_struct.DMA_DestAddrOffset = 1;                //每一次DMA请求,地址加1
  uart_rev_dma_init_struct.DMA_DestDataSize   = DMA_DST_8BIT;     //设置目的长度为byte
  uart_rev_dma_init_struct.DMA_SourceAddr     = (uint32)&UART5->D;//设置UART D为源地址
  uart_rev_dma_init_struct.DMA_SourceDataSize = DMA_SRC_8BIT;     //设置源长度为byte
  uart_rev_dma_init_struct.DMA_AutoDisableReq = FALSE;            //循环接收
  uart_rev_dma_init_struct.DMA_Isr = dma_isr;
  //配置发送DMA
  uart_trn_dma_init_struct.DMA_CHx = DMA_CH1;                     //选择DMA CH0作为通道
  uart_trn_dma_init_struct.DMA_MajorLoopCnt   = sizeof(recv_ram_buf); //设置计数器长度为数组长度
  uart_trn_dma_init_struct.DMA_MinorByteCnt   = 1;                //设置每次的长度为byte
  uart_trn_dma_init_struct.DMA_MajorCompleteIntEnable = FALSE;    //清空DMA 计数器清零中断
  uart_trn_dma_init_struct.DMA_Req            = UART5_TRAN_DMAREQ;//设置DMA 请求为 UART trn
  uart_trn_dma_init_struct.DMA_SourceAddr     = (uint32)recv_ram_buf; //设置目的地址为 recv_ram_buf
  uart_trn_dma_init_struct.DMA_SourceAddrOffset = 1;               //每一次DMA请求,地址加1
  uart_trn_dma_init_struct.DMA_SourceDataSize = DMA_SRC_8BIT;     //设置源长度为byte
  uart_trn_dma_init_struct.DMA_DestAddr       = (uint32)&UART5->D;//设置UART D为源地址
  uart_trn_dma_init_struct.DMA_DestDataSize   = DMA_DST_8BIT;     //设置目的长度为byte
  uart_trn_dma_init_struct.DMA_AutoDisableReq = TRUE;             //禁止循环发送
  
  LPLD_DMA_Init(uart_rev_dma_init_struct); //初始化DMA 接收
  LPLD_DMA_Init(uart_trn_dma_init_struct); //初始化DMA 发送
  LPLD_DMA_EnableReq(DMA_CH0);         //使能DMA请求

  LPLD_DMA_EnableIrq(uart_rev_dma_init_struct);   //使能DMA CH0中断
#endif
  
  uart5_init_struct.UART_RxIntEnable = TRUE;    //使能接收中断
  uart5_init_struct.UART_TxIntEnable = TRUE;    //使能发送中断
  uart5_init_struct.UART_RxIsr = uart_isr;      //设置接收中断函数
  LPLD_UART_Init(uart5_init_struct);            //初始化UART
  
#if USE_DMA_Tx_Rx != USE
  //使能UART中断
  LPLD_UART_EnableIrq(uart5_init_struct);
#endif
}