在进行资产监控技术研发时,HC32L110串口初始化
Posted 瑞奇Ricky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在进行资产监控技术研发时,HC32L110串口初始化相关的知识,希望对你有一定的参考价值。
相信大家在进行一些技术研发时,都会经历遇到问题-解决问题的一个过程。近期笔者在进行资产监控技术研发,该技术要求主要是解决企业在运输时遇到的一些问题,比如物流更新信息慢、货车运输距离远,不好管理、货物运输时得不到安全保障等。
当司机在运输过程中,除了运输公司指派的物件,在途中又接“私活”,因而导致原本货物被压坏或者没有按照预期日期送达。面对这样的情况,企业虽然明令禁止,但是却无法彻底杜绝。但是通过资产监控技术可以高效帮助企业解决这一问题。我们在进行资产监控技术研发时,需要对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
}
以上是关于在进行资产监控技术研发时,HC32L110串口初始化的主要内容,如果未能解决你的问题,请参考以下文章