完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我是第一次使用新唐片子,高手不要吐糟哦。
我在使用简单的uart实验,主程序中配置串口,然后使能中断。 主程序如下: int main (void) { SystemInit(); GPIO_Open(GPIOE, GPIO_PMD_PMD6_OUTPUT, GPIO_PMD_PMD6_MASK); exti_Init(); UART0_Init(115200); printf(" UART function test n"); while(1) { } } 串口初始化如下: void UART0_Init(uint32_t BaudRate) { STR_UART_T sParam; SYS_SelectIPClockSource_1(CLK_CLKSEL1_UART_MASK, CLK_CLKSEL1_UART_HXT); /* 串口时钟为HCLK */ MFP_UART0_TO_PORTB(); /* 设置PB0/PB1为UART接口 */ sParam.u32BaudRate = BaudRate; sParam.u32cDataBits = DRVUART_DATABITS_8; sParam.u32cStopBits = DRVUART_STOPBITS_1; sParam.u32cParity = DRVUART_PARITY_NONE; sParam.u32cRxTriggerLevel = DRVUART_FIFO_1BYTES; sParam.u8EnableDiv16 = DISABLE; UART_Init(UART0, sParam); /* 使能相应的中断 */ UART_EnableInt(UART0,( DRVUART_THREINT | DRVUART_RDAINT)); } 现在的情况是:串口能够进入中断,也能输出东西,但是我理解的是UART_EnableInt(UART0,( DRVUART_THREINT | DRVUART_RDAINT));只是使能串口中断,应该不会影响到主程序中断printf函数,也就是说程序执行完串口初始化后应该执行printf函数(如果没有发生串口中断。)然后进入while中等待中断。可是实际下来printf没有执行,如果把UART_EnableInt 屏蔽了就可以执行。 是不是我的理解不对呢? |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
614浏览 3评论
484浏览 2评论
351浏览 1评论
367浏览 1评论
336浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-7 22:28 , Processed in 0.573713 second(s), Total 95, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号