⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p229_s1_f44x.c

📁 msp430开发版程序
💻 C
字号:
//例1 MSP430F449在ACLK = LFXT1 = 32768Hz,MCLK=SMCLK=UCLK0=DCOCLK=1048576Hz频率驱动下以115200波特率异步串行通信,采用中断方式接收并发送收到的数据。P229
//计算波特率分频因子:1048576Hz/115200~9.1(009h|08h)。
//相关程序如下:
#include <msp430x44x.h>
void main(void)
{
	WDTCTL = WDTPW + WDTHOLD;
	FLL_CTL0 |= XCAP14PF;
	UTCTL0 = SSEL1;  //UCLK = SMCLK
	UBR00 = 0x09;  //在1MHz下进行115200波特率通信
	UBR10 = 0x00;  //在1MHz下进行115200波特率通信
	UMCTL0 = 0x0A;  //波特率调整
	UCTL0 = CHAR;  //8位character *SWRST*
	ME1 |= UTXE0 + URXE0;  //使能USART0 TXD/RXD
	IE1 |= URXIE0;  //使能USART0 RX中断
	P2SEL |= 0x30;  //P2.4,5用作USART0 TXD/RXD
	P2DIR |= 0x10;  //P2.4输出
	_EINT();
	for(;;)
	{
		_BIS_SR(CPUOFF);  //进入LPM0
		_NOP();	
	}
}
#pragma vector = UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
	while ((IFG1 & UTXIFG0) == 0);  //USART0接收缓存有数据吗?
	TXBUF0 = RXBUF0;  //读出接收到数据	
}
/*
//同理,当ACLK = UCLK0 = LFXT1 = 32768Hz,MCLK = SMCLK = DCO~800k,波特率为2400时,实现上述同样功能,只需要改变相关波特率寄存器设置:
UBR00 = 0x0D;  //32k/2400=13.65
UBR10 = 0x00;  
UMCTL0 = 0x6B;  //波特率调整

//当ACLK=LFXT1=32768Hz,MCLK=SMCLK=UCLK0=DCOCLK=1048576Hz,波特率为9600时,相关波特率寄存器设置:
UBR00 = 0x6D;  //1048576Hz/9600~109.23
UBR10 = 0x00;  //1MHz 9600
UMCTL0 = 0x81;  //波特率调整
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -