历史上的今天
今天是:2025年07月21日(星期一)
2020年07月21日 | msp430f5529简单uart源程序(用串口助手 发什么 回复什么)
2020-07-21 来源:51hei
单片机源程序如下:
/*****用串口助手 发什么 回复什么****/
#include "msp430f5529.h"
// ACLK = REFO = 32768Hz, MCLK = SMCLK = default DCO/2 = 1048576Hz
// P3.4,5——USCI_A0 TXD/RXD;P9.4,5——USCI_A2 TXD/RXD;P10.4,5——USCI_A3 TXD/RXD;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P4SEL |=BIT4+BIT5 ; // P5.6,7 = USCI_A1 TXD/RXD
UCA1CTL1 |= UCSWRST; // **Put state machine in reset**
UCA1CTL1 |= UCSSEL_2; // SMCLK
UCA1BR0 = 9; // 1MHz 115200 (see User's Guide)
UCA1BR1 = 0; // 1MHz 115200
UCA1MCTL |= UCBRS_1 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0
UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
UCA1IE |= UCRXIE; // Enable USCI_A1 RX interrupt
__bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled
}
// Echo back RXed character, confirm TX buffer is ready first,发送数据之前确定发送缓存准备好
#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
{
switch(__even_in_range(UCA1IV,4))
{
case 0:break; // Vector 0 - no interrupt
case 2: // Vector 2 - RXIFG
while (!(UCA1IFG&UCTXIFG)); // USCI_A1 TX buffer ready? UCTXIFG(USCI Transmit Interrupt Flag)
//等待数据发送完成 完成UCTXIFG置1 跳出循环
UCA1TXBUF = UCA1RXBUF; // TX -> RXed character
break;
case 4:break; // Vector 4 - TXIFG
default: break;
}
}
// UCTXIFG=0x02,UCA1IFG&UCTXIFG,当UCA1IFG的UCTXIFG位为1时,说明UCA1TXBUF为空,
//跳出while循环循环;当UCTXIFG位为0时UCA1TXBUF不为空,停在循环。
史海拾趣
|
引 言 Internet已经成为人们获取信息、相互交流的重要渠道。将嵌入式系统和Internet相结合,使嵌入式设备接入Internet是当今嵌入式系统发展的一个重要趋势,因此就有了嵌入式Internet的说法。利用该技术可以实现基于Internet的远 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:48 编辑 一、任务 设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定形状波形。示意图如下: 二、要求 1.基本要求 (1)具有产生正弦波、方波、三角波三种周期 ...… 查看全部问答> |
|
小弟刚学51,现在有一个需求要用89C52实现一个级选菜单,用触摸屏选择后跳到下一步. 这个需求用汇编是否能实现?如能实现怎样实现一个菜单界面供选择,知道的朋友请提供思路.最好有代码.谢谢!… 查看全部问答> |
|
我在用IAR5.30 DEBUG的时候,发现老是发现不了单片机,不知道是什么造成的。我用的是TI的MSP-FET 430UIF仿真器。用得430是MSP430G2553,有两线制下载方式,下面是我两线的接线图这是IAR报错的截图望大侠帮忙,谢谢 [ 本帖最后由 greedangel 于 2011 ...… 查看全部问答> |




