欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
hc32l130串口使用內部時鐘程序問題
[打印本頁]
作者:
shrimp_zero
時間:
2023-6-10 14:12
標題:
hc32l130串口使用內部時鐘程序問題
hc32l130使用內部晶振,開啟串口發送和接受功能,串口工具發送數據給mcu,程序debug并沒有進入到中斷,下面是啟用內部時鐘并開啟串口功能完整單片機代碼。
#include "ddl.h"
#include "uart.h"
#include "gpio.h"
#include "flash.h"
#include "sysctrl.h"
#define T1_PORT (3)
#define T1_PIN (3)
volatile static uint8_t u8RxData;
volatile static uint8_t u8TxCnt = 0;
volatile static uint8_t u8RxCnt = 0;
void App_UartCfg(void);
void App_PortInit(void);
void App_ClkCfg(void);
int32 t main (void)
{
App_ClkCfg () ;
App_PortInit () ;
App_UartCfg();
while (1)
{
if(u8RxCnt>=1)
{
u8RxCnt = 0;
Uart_SendDataIt(MOP_UART1, ~u8RxData);
}
}
}
void App_ClkCfg(void)
{
stc_sysctrl_clk_cfg_t sysctrl_clk_cfg;
Sysctrl_SetPeripheralGate(SysctrlPeripheralFlash, TRUE);
Flash_WaitCycle(FlashWaitCycle0);
sysctrl_SetRCHTrim(SysctrlRchFreq8MHz);
sysctrl_clk_cfg.enClkSrc = SysctrlClkRCH;
sysctrl_clk_cfg.enHClkDiv = SysctrlHclkDiv1;
sysctrl_clk_cfg.enPClkDiv = SysctrlPclkDiv1;
Sysctrl_ClkInit(&sysctrl_clk_cfg);
}
void Uart1_IRQHandler(void)
{
if(Uart_GetStatue(M0P_UART1, UartRC))
{
Uart_ClrStatus(M0P_UART1, UartRC);
u8RxData = Uart_ReceiveData(M0P_UART1);
u8RxCnt++;
}
if(Uart_GetStatus(M0P_UART1, UartTC))
{
Uart_ClrStatus(M0P_UART1, UartTC);
u8TxCnt++;
}
}
void App_PortInit(void)
{
stc_gpio_cfg_t stcGpioCfg;
DDL_ZERO_STRUCT(stcGpioCfg);
Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
stcGpioCfg.enDir = GpioDirOut;
Gpio_Init(GpioPortA, GpioPin2, &stcGpioCfg);
Gpio_SetAFMode(GpioPortA, GpioPin2, GpioAf1);
stcGpioCfg.enDir = GpioDirIn;
Gpio_Init(GpioPortA, GpioPin3, &stcGpioCfg);
Gpio_SetAFMode(GpioPortA, GpioPin3, GpioAf1);
}
void App_UartCfg(void)
{
stc_uart_cfg_t stcCfg;
DDL_ZERO_STRUCT(stcCfg);
Sysctrl_SetPeripheralGate(SysctrlPeripheralUart1, TRUE);
stcCfg.enRunMode = UartMskMode3;
stcCfg.enStopBit = UartMsk1bit;
stcCfg.enMmdorCk = UartMskEven;
stcCfg.stcBaud.u32Baud = 9600;
stcCfg.stcBaud.enClkDiv = UartMsk8Or16Div;
stcCfg.stcBaud.u32Pclk = Sysctrl_GetPClkFreq();
Uart_Init(M0P_UART1, &stcCfg);
Uart_ClrStatus(M0P_UART1, UartRC);
Uart_ClrStatus(M0P_UART1, UartTC);
Uart_EnableIrq(M0P_UART1, UartRxIrq);
Uart_EnableIrq(M0P_UART1, UartTxIrq);
EnableNvic(UART1_IRQn, IrqLevel3, TRUE);
}
復制代碼
hc32l130數據手冊上寫的是,時鐘在8MHz下,波特率9600,模式三使用8分頻,此時的時鐘誤差在0.16%,
1686376097308.jpg
(28.48 KB, 下載次數: 75)
下載附件
2023-6-10 14:12 上傳
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1