Example #1
0
static rt_err_t rt_uart_init (rt_device_t dev)
{
    struct uart_device * uart_dev;
    uart_dev = (struct uart_device*)dev;
    
    UART_QuickInit(BOARD_UART_DEBUG_MAP, BOARD_UART_BAUDRATE);
    UART_CallbackRxInstall(HW_UART0, UART0_ISR);
    UART_CallbackRxInstall(HW_UART1, UART1_ISR);
    UART_CallbackRxInstall(HW_UART2, UART2_ISR);
    UART_CallbackRxInstall(HW_UART3, UART3_ISR);
    UART_CallbackRxInstall(HW_UART4, UART4_ISR);
    UART_ITDMAConfig(uart_dev->hw_instance, kUART_IT_Rx, true);

    switch(uart_dev->hw_instance)
    {
        case 0:
            uart_dev->hw_isr = UART0_ISR;
            break;
        case 1:
            uart_dev->hw_isr = UART1_ISR;
            break; 
        case 2:
            uart_dev->hw_isr = UART2_ISR;
            break;   
        case 3:
            uart_dev->hw_isr = UART2_ISR;
            break; 
        case 4:
            uart_dev->hw_isr = UART2_ISR;
            break; 
    }
    return RT_EOK;
}
Example #2
0
int main(void)
{
    DelayInit();
    UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200);
    printf("CHBootloader\r\n");
    
    UART_CallbackRxInstall(HW_UART0, UART_ISR);
    FLASH_Init();
    
    Boot.name = "MK6xDN1M(512)VLQ12";
    Boot.AppStartAddr = 0x5000;
    Boot.TimeOut = 2000;
    Boot.FlashPageSize = FLASH_GetSectorSize();
    Boot.send = send;
    Boot.flash_erase = flash_erase;
    Boot.flash_write = flash_write;
    
    BootloaderInit(&Boot);
    
    UART_ITDMAConfig(HW_UART0, kUART_IT_Rx, true);
    
    while(1)
    {
        BootloaderProc();
    }
}
Example #3
0
uint32_t UARTB_Init(int rate)
{
    uint32_t instance;
    
    instance = UART_QuickInit(UART4_RX_PE25_TX_PE24, rate);
    /*  配置UART 中断配置 打开接收中断 安装中断回调函数 */
    UART_CallbackRxInstall(HW_UART4, UART_RX_ISR);
    /* 打开串口接收中断功能 IT 就是中断的意思*/
    UART_ITDMAConfig(HW_UART4, kUART_IT_Rx, true);
    
    return instance;
}
Example #4
0
int main(void)
{
    uint32_t i;
    uint32_t len;
    DelayInit();
    GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP);
    UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200);
    UART_CallbackRxInstall(HW_UART0, UART_ISR);
    UART_ITDMAConfig(HW_UART0, kUART_IT_Rx, true);
    
    printf("NRF24L01 test\r\n");
    /* 初始化 NRF2401模块 的SPI接口及片选 */
    PORT_PinMuxConfig(HW_GPIOE, 1, kPinAlt2); 
    PORT_PinMuxConfig(HW_GPIOE, 2, kPinAlt2); 
    PORT_PinMuxConfig(HW_GPIOE, 3, kPinAlt2); 
    PORT_PinMuxConfig(HW_GPIOE, 4, kPinAlt2);
    /* 初始化2401所需的CE引脚 */
    GPIO_QuickInit(HW_GPIOE, 0 , kGPIO_Mode_OPP);
    /* 初始化2401模块*/
    SPI_QuickInit(SPI1_SCK_PE02_SOUT_PE01_SIN_PE03, kSPI_CPOL0_CPHA0, 1*1000*1000);
    nrf24l01_init(HW_SPI1, 0);
    
    //检测是否存在无线设备,并配置接收和发送地址
    if(nrf24l01_probe())
    {
        printf("no nrf24l01 device found!\r\n");
    }
    /* 进入Rx模式 */
    nrf24l01_set_rx_mode();
    while(1)
    {
        /* 如果收到串口数据则发送 */
        if(gpRevChar != NULL)
        {
            nrf24l01_set_tx_mode();
            nrf24l01_write_packet(gpRevChar, 1);
            nrf24l01_set_rx_mode();
            gpRevChar = NULL;
        }
        /* 如果收到2401 的数据 则传输到串口 */
        if(!nrf24l01_read_packet(NRF2401RXBuffer, &len))
        {
            i = 0;
            while(len--)
            {
                UART_WriteByte(HW_UART0, NRF2401RXBuffer[i++]);
            }
        }
    }
}
Example #5
0
int main(void)
{
    DelayInit();
    GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP);
    
    UART_QuickInit(UART0_RX_PD06_TX_PD07 , 115200);
    
    printf("type any character which will echo...\r\n");
    
    /*  配置UART 中断配置 打开接收中断 安装中断回调函数 */
    UART_CallbackRxInstall(HW_UART0, UART_RX_ISR);
    /* 打开串口接收中断功能 IT 就是中断的意思*/
    UART_ITDMAConfig(HW_UART0, kUART_IT_Rx, true);
    
    while(1)
    {
        GPIO_ToggleBit(HW_GPIOE, 6);
        DelayMs(500);
    }
}
Example #6
0
int main(void)
{
    DelayInit();
    DelayMs(10);
    GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP);

    UART_QuickInit(UART0_RX_PB16_TX_PB17 , 115200);

    printf("ATCMD test\r\n");

    UART_CallbackRxInstall(HW_UART0, UART_RX_ISR);
    UART_ITDMAConfig(HW_UART0, kUART_IT_Rx, true);

    ATP_Init(ATCMD, ARRAY_SIZE(ATCMD));
    while(1)
    {
        GPIO_ToggleBit(HW_GPIOE, 6);
        DelayMs(500);
    }
}
Example #7
0
int main(void)
{
    DelayInit();

    GPIO_QuickInit(HW_GPIOD, 7, kGPIO_Mode_OPP);
    GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP);
    
    UART_QuickInit(UART0_RX_PA01_TX_PA02, 115200);
    
    printf("HelloWorld\r\n");
    
    /* ´ò¿ª´®¿ÚÖÐ¶Ï */
    UART_ITDMAConfig(HW_UART0, kUART_IT_Rx, true);
    UART_CallbackRxInstall(HW_UART0, UART_ISR);
    
    while(1)
    {
        GPIO_ToggleBit(HW_GPIOD, 7);
        GPIO_ToggleBit(HW_GPIOE, 6);
        DelayMs(50);
    }
}