MSP430串口通信中断与设置详解

7 下载量 168 浏览量 更新于2024-09-05 收藏 62KB PDF 举报
本文主要讨论了在使用MSP430系列单片机进行串口数据收发时遇到的一些问题以及编程技巧。作者在参考沈建华编著的书籍时,注意到书中的某些控制字没有详细列出,这可能导致在实际编程过程中遗漏,从而引发错误。特别提到的三个特殊功能寄存器——ME2 IE2 IFG2(或ME1 IE1 IFG1)与USART1通信模块紧密相关,它们分别是中断使能寄存器(IE2/IE1),中断标志寄存器(IFG2/IFG1)和模块使能寄存器(ME2/ME1)。通过定义宏(如DEFC)来简化这些寄存器的操作,例如设置UART1的接收和发送中断(URXIE1, UTXIE1)、中断标志(URXIFG1, UTXIFG1)以及波特率控制(U1MCTL)。 MSP430系列单片机的串口波特率设置具有其独特性,可以通过UTCTL寄存器选择不同的时钟源,如外部时钟UCLK1、ACLK或SMCLK。波特率的计算涉及到精确的比例计算,例如750kHz时钟下,若要实现115200波特率,需要调整UBR(基本时钟比率寄存器)的值,使得BRCLK(波特率发生器时钟)除以UBR的结果接近于期望的波特率除以16。在这个例子中,UBR为3,对应于750000/(115200*8)的结果,而M7到M0的位可以灵活地调整以满足精度要求,但不能连续占据相邻位置,并且UMCTL的最低值必须至少为0x03。 本文还提到了两个函数:`void Delay(unsigned char m)`,用于实现延迟,以及`void ComInit(void)`,可能用于初始化串口通信。在数据发送方面,有一个名为`unsigned char Usart_Tx_`的变量或函数,这可能是用于存放待发送的数据或用于传输数据的接口。 本文的重点在于帮助开发者更好地理解和使用MSP430的串口功能,避免因为缺乏控制字列表而产生的编程问题,并提供了波特率设置和相关寄存器操作的具体步骤。