在线时间1 小时
UID3578600
注册时间2019-7-17
NXP金币0
TA的每日心情 | 衰 2019-7-29 09:22 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]初来乍到
新手上路

- 积分
- 19
- 最后登录
- 2019-7-29
|
第一次学习硬件。用的KEA Z128 M0+的芯片,现在是想用串口助手,查看程序的打印信息,验证程序的运行情况。用的KEA 128的标准库,但是串口没有输出,执行到printf就进入UART中断,请教社区大神,哈哈哈哈。uart.c和main.c如下。
void UART_Init(UART_TypeDef * pUART, UART_ConfigType *pConfig)
{
uint16_t u16Sbr;
uint8_t u8Temp;
uint32_t u32SysClk = pConfig->u32SysClkHz;
uint32_t u32Baud = pConfig->u32Baudrate;
/* Enable the clock to the selected UART */
if (pUART == UART0_BASE_PTR)
{
SIM_BASE_PTR->SCGC |= SIM_SCGC_UART0_MASK;
}
if (pUART == UART1_BASE_PTR)
{
SIM_BASE_PTR->SCGC |= SIM_SCGC_UART1_MASK;
}
if (pUART == UART2_BASE_PTR)
{
SIM_BASE_PTR->SCGC |= SIM_SCGC_UART2_MASK;
}
/* Make sure that the transmitter and receiver are disabled while we
* change settings.
*/
pUART->C2 &= ~(UART_C2_TE_MASK | UART_C2_RE_MASK );
/* Configure the UART for 8-bit mode, no parity */
pUART->C1 = pConfig->sctrl1settings.byte;
/* Calculate baud settings */
u16Sbr = (((u32SysClk)>>4) + (u32Baud>>1))/u32Baud;
/* Save off the current value of the UARTx_BDH except for the SBR field */
u8Temp = pUART->BDH & ~(UART_BDH_SBR_MASK);
pUART->BDH = u8Temp | UART_BDH_SBR(u16Sbr >> 8);
pUART->BDL = (uint8_t)(u16Sbr & UART_BDL_SBR_MASK);
if(1==pConfig->bSbns)
{
UART_Set2StopBit(pUART);
}
else
{
UART_Set1StopBit(pUART);
void UART1_init()
{
UART_ConfigType UART1_cfg_par;
UART1_cfg_par.sctrl1settings.byte = 0xe4;
UART1_cfg_par.sctrl2settings.byte = 0x70;
UART1_cfg_par.sctrl3settings.byte = 0x1;
UART1_cfg_par.bSbns = 0;
UART1_cfg_par.u32SysClkHz = DEFAULT_SYSTEM_CLOCK;
UART1_cfg_par.u32Baudrate = 9600;
UART_Init(UART1,&UART1_cfg_par);
}
int main(void)
{
OSInit();
UART1_init();
|
|