- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
msp430g2553-串口调试测试程序-寡人-发送与接收
/******************************************************************************
本程序是单片机MSP430G2553 P1.2 P1.1 P1.0 P1.6
利用主辅时钟为1MHZ,串口波特率9600, 波特率:1000000/9600 104 UCA0BR0 104; // 1MHz 9600 UCA0BR1 0; // 1MHz 9600
现象: 功能(1)看到 P1.0---红灯指示;P1.6---绿灯指示 循环闪烁。 同时电脑串口调试助手(设置波特率:9600,无校验,8位数据位,1位停止位) 不断显示,0x00,0x01,0x40,0x41。 功能(2)打开电脑串口调试助手,发送区有数据待发送时,在接受区将看到相应的数据。
******************************************************************************/
#include msp430g2553.h
#define uint unsigned int
#define uchar unsigned char
void Delay_us uint us // 延时us 前提是f 1MHZ(不建议用该延时,不是很精确) uint i;
for i 0;i us;i++ __delay_cycles 1 ; void Delay_ms uint ms // 延时ms 前提是f 1MHZ uint j;
for j 0;j ms;j++ __delay_cycles 1000 ; void main void uchar a 0;
uchar TX[4] 0x00,0x01,0x40,0x41 ;
WDTCTL WDTPW + WDTHOLD; // 关闭看门狗
BCSCTL1 CALBC1_1MHZ; // 设置时钟
DCOCTL CALDCO_1MHZ;
P1DIR 0xFF; // All P1.x outputs
P1OUT 0; // All P1.x reset
P1SEL | BIT1 + BIT2 + BIT4; // P1.1 RXD, P1.2 TXD
P1SEL2 | BIT1 + BIT2; // P1.4 SMCLK, others GPIO
P2DIR 0xFF; // All P2.x outputs
P2OUT 0; // All P2.x reset UCA0CTL1 | UCSSEL_2; // SMCLK
UCA0BR0 104; // 1MHz 9600
UCA0BR1 0; // 1MHz 9600
UCA0MCTL UCBRS2 + UCBRS0; // Modulation UCBRSx 5
UCA0CTL1 ~UCSWRST; // **Initialize USCI state machine**
IE2 | UCA0RXIE; // 串口使能开启
__bis_SR_register GIE ; // 总中断使能 P1DIR | BIT0+BIT6 ; P1OUT | BIT0+BIT6 ;
while 1 //a 0x41时,红绿灯全亮;a 00时,红绿灯全灭;
//a 0x01时,红灯亮;绿灯灭;a 0x10时,绿灯亮;红灯灭;
UCA0TXBUF TX[a];
Delay_ms 500 ;
P1OUT UCA0TXBUF; a++;
if a 3 a 0; // Echo back RXed character, confirm TX buffer is ready first
#pragma vector USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR void //接受中断 //uchar b;
while ! IFG2UCA0TXIFG ; // USCI_A0 TX buffer ready //判断串口的发送是否正在工作,
//因为要使用发送功能,所以得判断发送是否忙碌,
//只有在不忙碌的时候才可以启用发送。
//这一句就是判断发送是否在工作,如果是在工作,那么一直等待到不工作为止。 UCA0TXBUF UCA0RXBUF; // TX - RXed character 硬件连接图:
文档评论(0)