龙空技术网

在进行资产监控技术研发时,HC32L110串口初始化

云息通信技术有限公司 128

前言:

现在小伙伴们对“定时器1ms中断”大约比较看重,各位老铁们都需要知道一些“定时器1ms中断”的相关资讯。那么小编在网络上汇集了一些有关“定时器1ms中断””的相关资讯,希望各位老铁们能喜欢,我们一起来学习一下吧!

相信大家在进行一些技术研发时,都会经历遇到问题-解决问题的一个过程。近期笔者在进行资产监控技术研发,该技术要求主要是解决企业在运输时遇到的一些问题,比如物流更新信息慢、货车运输距离远,不好管理、货物运输时得不到安全保障等。

当司机在运输过程中,除了运输公司指派的物件,在途中又接“私活”,因而导致原本货物被压坏或者没有按照预期日期送达。面对这样的情况,企业虽然明令禁止,但是却无法彻底杜绝。但是通过资产监控技术可以高效帮助企业解决这一问题。我们在进行资产监控技术研发时,需要对HC32L110串口初始化,接下来简单介绍下HC32L110串口初始化的过程。

HC32L110串口初始化,采用模式一全双工模式,波特率是根据定时器0来确定的,以下为串口0的初始化过程。

void Uart0_Init(void)

{

 uint16_t timer; uint32_t pclk;   stc_uart_irq_cb_t stcUartIrqCb; stc_uart_config_t  stcUartCfg; stc_uart_baud_config_t stcBaud;   Clk_SetPeripheralGate(ClkPeripheralGpio,TRUE);	 Gpio_SetFunc_UART0TX_P35();                   //设置P35为UART0发送 Gpio_SetFunc_UART0RX_P36();                   //设置P36为UART0接收 Clk_SetPeripheralGate(ClkPeripheralUart0,TRUE); //使能UART0时钟 stcUartIrqCb.pfnRxIrqCb = USART0_IRQHandler;        //设置接收中断回调函数 stcUartIrqCb.pfnTxIrqCb = NULL;       			 //设置发送中断回调函数	  stcUartCfg.pstcIrqCb = &stcUartIrqCb;           //配置串口中断 stcUartCfg.bTouchNvic = TRUE;                   //允许串口中断 stcUartCfg.enRunMode = UartMode1;               //串口通讯使用模式1 stcBaud.bDbaud = 0u;                            //双倍波特率功能 stcBaud.u32Baud = 9600u;                        //更新波特率位置 stcBaud.u8Mode = UartMode1;                     //按模式1计算波特率参数 pclk = Clk_GetPClkFreq();                       //获得PCLK timer=Uart_SetBaudRate(UARTCH0,pclk,&stcBaud);  //根据波特率算出对应的定时器的设置值 Tim0_Init(timer);                               //初始化波特率对应的定时器  (UART0对应TIMER0 UART1对应TIMER1 )	  Uart_Init(UARTCH0, &stcUartCfg);                //初始化UART1}

//接收完成通过定时器2来确定,定时器2采用1ms中断

//Usart接收中断

void USART0_IRQHandler(void)

{

Usart0.Rx_Complete = false;

Usart0.TimeOut = 5;

Usart0.Rx_Buff[Usart0.Rxlenth] = M0P_UART1->SBUF; //读出接收数据

Usart0.Rxlenth++;

Usart0.Rxlenth = (Usart0.Rxlenth >= Bufflenth)? 0 :Usart0.Rxlenth; //接收计数加1

}

标签: #定时器1ms中断