串口中断问题

[复制链接]
2587|0
 楼主| a123b123 发表于 2007-4-23 11:26 | 显示全部楼层 |阅读模式
<br />下面是初始化程序,请大家帮我看看&nbsp;&nbsp;为什么进不了中断??<br /><br />void&nbsp;InitUSART0(void)<br />{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;AT91C_BASE_PIOA-&gtPIO_PDR&nbsp;=&nbsp;DMX_RXD&nbsp;|&nbsp;DMX_TXD&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;//Disables&nbsp;the&nbsp;PIO&nbsp;from&nbsp;controlling&nbsp;the&nbsp;corresponding&nbsp;pin&nbsp;(enables&nbsp;peripheral&nbsp;control&nbsp;of&nbsp;the&nbsp;pin).<br />&nbsp;&nbsp;&nbsp;&nbsp;AT91C_BASE_PIOA-&gtPIO_ASR&nbsp;=&nbsp;DMX_RXD&nbsp;|&nbsp;DMX_TXD;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Assigns&nbsp;the&nbsp;I/O&nbsp;line&nbsp;to&nbsp;the&nbsp;Peripheral&nbsp;A&nbsp;function.<br />&nbsp;&nbsp;&nbsp;&nbsp;AT91C_BASE_PIOA-&gtPIO_BSR&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Assigns&nbsp;the&nbsp;I/O&nbsp;line&nbsp;to&nbsp;the&nbsp;Peripheral&nbsp;B&nbsp;function.<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//enable&nbsp;the&nbsp;clock&nbsp;of&nbsp;USART<br />&nbsp;&nbsp;&nbsp;&nbsp;AT91C_BASE_PMC-&gtPMC_PCER&nbsp;=&nbsp;1&lt&ltAT91C_ID_US0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//Set&nbsp;the&nbsp;USART&nbsp;mode<br />&nbsp;&nbsp;&nbsp;&nbsp;AT91C_BASE_US0-&gtUS_MR&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;AT91C_US_USMODE_NORMAL&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;//普通模式<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT91C_US_CLKS_CLOCK&nbsp;&nbsp;&nbsp;&nbsp;&&nbsp;&nbsp;&nbsp;&nbsp;//时钟为MCK<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;~AT91C_US_SYNC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;//异步模式<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT91C_US_PAR_NONE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;//无校验<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT91C_US_NBSTOP_1_BIT&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;//一位停止位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT91C_US_MODE9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&&nbsp;&nbsp;&nbsp;&nbsp;//9位数据位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;~AT91C_US_OVER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//16&nbsp;倍重采样。OVER=0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//write&nbsp;the&nbsp;Timeguard&nbsp;Register<br />&nbsp;&nbsp;&nbsp;&nbsp;AT91C_BASE_US0-&gtUS_TTGR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//set&nbsp;baud&nbsp;rate&nbsp;divisor&nbsp;register<br />&nbsp;&nbsp;&nbsp;&nbsp;AT91C_BASE_US0-&gtUS_BRGR&nbsp;=&nbsp;BAUD_CD;&nbsp;//((47923200)/(250000x16))&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//Enable&nbsp;the&nbsp;RX&nbsp;and&nbsp;TX&nbsp;PDC&nbsp;transfer&nbsp;requests<br />&nbsp;&nbsp;&nbsp;&nbsp;//AT91C_BASE_PDC_US0-&gtPDC_PTCR&nbsp;=&nbsp;AT91C_PDC_TXTEN&nbsp;|&nbsp;AT91C_PDC_RXTEN;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//Enable&nbsp;usart<br />&nbsp;&nbsp;&nbsp;&nbsp;AT91C_BASE_US0-&gtUS_CR&nbsp;=&nbsp;AT91C_US_RXEN&nbsp;|&nbsp;AT91C_US_TXEN;&nbsp;&nbsp;//&nbsp;0x50;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//使能接收结束中断&发送结束中断<br />&nbsp;&nbsp;&nbsp;&nbsp;AT91C_BASE_US0-&gtUS_IMR&nbsp;=&nbsp;AT91C_US_ENDRX&nbsp;|&nbsp;AT91C_US_ENDTX&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//在AIC中设置US0中断优先级、中断入口、中断方式<br />&nbsp;&nbsp;&nbsp;&nbsp;AT91F_AIC_ConfigureIt&nbsp;(&nbsp;AT91C_BASE_AIC,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT91C_ID_US0,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;US0_INTERRUPT_LEVEL,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;US0_irq_handler<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;//在AIC中使能US0中断<br />&nbsp;&nbsp;&nbsp;&nbsp;AT91F_AIC_EnableIt&nbsp;(AT91C_BASE_AIC,&nbsp;AT91C_ID_TC0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

54

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部