关于MSP430F5529单片机的串口问题 3C

一句话,我要疯了,,现在的问题是,使用的串口调试助手来调试的,开发环境从IAR低版本到高版本以及CCS,程序是官方程序和自己编写的,以及网友的。板子是标准板,还有个自己的板子。USB转串口线两条。但是结果都一样。
主要是使用串口调试助手发送字符串,然后接收相同的。结果是,如果我发较长的字符串,前四位会丢失。单个发送字符,根本没有任何返回信息。我简直要疯了,真的不知道原因了,期待大神拯救啊
代码如下:
#include

int main(void)
{

WDTCTL = WDTPW + WDTHOLD; // Stop WDT

P3SEL = BIT3+BIT4; // P3.4,5 = USCI_A0 TXD/RXD
UCA0CTL1 |= UCSWRST; // Put state machine in reset
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 6; // 1MHz 9600 (see User's Guide)
UCA0BR1 = 0; // 1MHz 9600
UCA0MCTL = UCBRS_0 + UCBRF_13 + UCOS16; // Modln UCBRSx=0, UCBRFx=0,
// over sampling
UCA0CTL1 &= ~UCSWRST; // Initialize USCI state machine
UCA0IE |= UCRXIE; // Enable USCI_A0 RX interrupt
P4OUT=0;
__bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled
__no_operation(); // For debugger
}

// Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCI_A0_VECTOR
interrupt void USCI_A0_ISR(void)
{
switch(
even_in_range(UCA0IV,4))
{
case 0:break; // Vector 0 - no interrupt
case 2: // Vector 2 - RXIFG
while (!(UCA0IFG&UCTXIFG)); // USCI_A0 TX buffer ready?
UCA0TXBUF = UCA0RXBUF; // TX -> RXed character

break;

case 4:break; // Vector 4 - TXIFG
default: break;
}
}

0

3个回答

2
qq_18292553
qq_18292553 这个我用过了,没成功
3 年多之前 回复

当读入的数据长短小于端口最大长度时,那些没有用到的位会被视零。

0

这是msp430f5310,串口的初始化流程,都是一个系列的,如果没问题的话估计寄存器都是一样的。仅供参考。

 void InitUart(void)
{
    //初始化gpio
    P4SEL |= 0x30;
    P4DIR &= ~0x30;
    PMAPKEYID = PMAPKEY;
    PMAPCTL = 0x2;
    P4MAP45 = 0xB0C;

    //----------------------------------------------------------------
    //2014/07/20 19:12:47
    UCA1CTL1 |= 0x1;//

    UCA1CTL0 = 0x0;
    UCA1CTL1 |= 0x80;//smclk
    //----------------------------------------------------------------
    //2014/07/21 11:16:21
    //UCOS16 =1表示对输入源频率先进行16分频,然后在与波特率进行计算。
    //4M 9600 -->UCBRX = 26,UCBRSX = 0,UCBRFX = 1 
    ////UCBRx = 109, UCBRFx = 0, UCBRSx = 2, UCOS16 = 0
    UCA1BR0 = 109;
    UCA1BR1 = 0;
    //        UCOS16 UCBRSx    UCBRFx
    UCA1MCTL = 4;//1 | (0 << 1) | (0 << 4);

    UCA1CTL1 &= ~0x1;//

    UCA1IE = 0x1;
}
void put(char c)
{
    //If interrupts are not used, poll for flags
    if(!(UCA1IE & 0x2))
        //Poll for transmit interrupt flag
        while(!(UCA1IFG & 0x2));

    UCA1TXBUF = c;
}
void puts(char *data,unsigned long len)
{
    unsigned long i;
    for(i = 0; i < len;i++)
        put(data[i]);
}
#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
{
    char rv;
    switch(UCA1IV)
    {
        //Vector 2 - RXIFG
    case 2:
        rv = UCA1RXBUF;
        UCA1TXBUF = rv;
        break;
    default: break;
    }
}

本人上传资源中有嵌入式编程相关的辅助工具,如果有意的可以下载使用,以及arm启动框架的工程,上传的工具和软件根据自己多年的工作经验自己编写的。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
毕业前开贴——MSP430F5529LaunchPad学习
闲话少说,6月21日毕业典礼,争取这之前熟悉
MSP430单片机无线功能的扩展一:HC-06蓝牙模块
最近把蓝牙模块集成到MSP430单片机的串口上,成功实现了通过android和iphone与单片机的通信,即可以控制也可以获取信息。本人已完成android上和iphone上的应用开发,这个工作具有通用的意义。把导师交给的工作完成了一半,也算息了口气。后期的工作是把wifi模块集成上去,还有在智能家居领域使用较多的zigbee模块的集成。有时间我再来谈谈是如何集成的。
基于MSP430F5529的超声波测距源码,自己写的可能不对,仅供参考
超声波的原理大家百度一下就应该知道了,因此基于MSP430的超声波主要是调整时钟就行了。 代码如下 #include &quot;msp430f5529.h&quot; #include &quot;usart.h&quot; #include &quot;stdio.h&quot; double a = 1.111;       //距离 long long next;         //寄存器值 /*  * P3.6与TB0.6相连接,输出信...
430单片机控制ad9850(dds模块)以及用其输出调频波
通过430单片机控制ad9850(dds模块)以及用其输出调频波,用于05年电子设计竞赛A题.
MSP430F5529调试问题总结
错误提示msp430 Target execution stopped   解决办法:从新
MSP430F5529LP 串口通信 UART 代码示例 CCS工程
MSP-EXP430F5529LP LaunchPad 异步串口通信 UART 示例,包含发送ASCII码,发送字符串以及变量的函数,使用ALCK时钟,9600波特率。CCS8.3工程文件,附有注释。
msp430单片机蓝牙电机代码
这段代码可以实现用蓝牙模块控制一个电机,还需要连接一块msp430单片机。
MSP430单片机USART串口发送字符和字符串
在MSP430单片机的官方历程中有使用串口中断发送字符以及字符串的程序,但是移植性不高,我专门写了两个函数,用于发送单个字符合字符串,不需要使用中断,供大家参考。/********************************************** *程序描述:单片机的P3.4、P3.5作为串口发送字符和字符串 *作者 :Zhenhua Liu *时间 :2017.11.01
TI的msp430f5529在12864液晶上通过四个按键控制的贪吃蛇游戏代码,CCS编写程序。
TI的msp430f5529在12864液晶上通过四个按键控制的贪吃蛇游戏代码,CCS编写程序。
msp430f5529的uart程序
msp430f5529的uart程序,里面包含多种发送方式和接收方式,初学者用
MSP430f5529单片机开发实例
MSP430f5529开发实例程序,我在学习使用MSP430f5529与LDC1314结合制作金属探测智能小车时学习用的学习资料
MSP430F5529之捕获模式下的HCSR04超声测距(粗略)
前段时间需要用MSP430F5529,因为是个菜鸟,很多都不会,遇到了很多问题,百度好多东西都是千篇一律的,好些东西都是Ctrl+c,Ctrl+v。而有很多老鸟,可能说不定也是菜鸟一个呢!!一副为了你好的样子,你看手册啊,手册不会吗?你用示波器打啊,示波器不会吗?你什么单位啊,示波器都没有吗?所以才打算在把这个捕获模式搞清楚后发一篇自己的心得吧.。发了半天牢骚,正文如下。 要用捕获我们得搞清楚捕...
基于MSP430F5529的智能灯设计
#include &amp;lt;msp430F5529.h&amp;gt; void IO_Init(); void InitADC(); unsigned int GetAD(char channel); void light_Compare(int templight); int counter=0; //中断计数器参数,单位秒 /** * mai...
按键控制MSP430F5529单片机控制灯闪烁+按键控制LED新手程序
按键控制MSP430F5529单片机控制灯闪烁+按键控制LED新手程序,这个程序是我在编写完之后进行编译成功版,第一次使用430F5529单片机的新手同学可以试一试
怎样只用一个XT2晶振得到精确的高频----msp430f5529单片机
最近在用msp430f5529,终于在上周弄清了时钟方面的原理,在此记录下,唔,这也是俺第一篇博客······ 首先呢,我先插入它的原理框图         从图中可以看出ACLK、SMCLK、MCLK都可以由XT1CLK/VLOCLK/REFOCLK/DCOCLK/DCOCLKDIV/XT2CLK得到,而TI例程里面给的大多是由FLLREFCLK倍频得到DCOCLK或DCOCLK,从而得
MSP430f5529官方例程(全面).zip
本人在学习MSP430f5529当中的一些资料和心得吧,希望能够给大家一些提示和帮助 里面有一些基础的例程
利用msp430f5529使led灯闪烁
本程序适用于ccs开发环境下的msp430f5529的开发。 其功能是实现led的亮灭控制,新手可以参考一下。
SPWM波在单片机上的实现与调节(基于MSP430F5529)
SPWM波的定义和生成方法在这里就不多说了,本文主要说SPWM波在单片机上的实现,以及如何调节滤出后的正弦波的频率及幅度。 先弄清楚SPWM在单片机上如何产生,比如你要输出100HZ的SPWM正弦波,每个周期100个点,则定时器B的中断频率为100*100=10K,用于载波(定时器A)的PWM频率应>=10K(这里我建议载波为1M,因为定时器的配合问题会有+-1的误差,所以载波尽量的大则滤
msp430单片机的复位
在学习MSP430单片机的时候,经常会遇到一个问题,那就是单片机上电复位以后它到底是什么样的状态?因为它功能复杂,且资源丰富,IO管脚很多,时钟和低功耗模式配置灵活,那么上电后它们处于什么样的状态? 对于电子开发的工程师而言,芯片手册是最好的文档,而且要学会阅读英文的手册,以下我就通过TI公司的用户指南帮助大家一步一步缕清楚,上电复位。 首先我们要了解430单片机的复位包括POR(po
TI官方开发板MSP430F5529LP硬件原理图
TI官方的开发板MSP430F5529LP硬件原理图,开发时可以参照此硬件连接来调试软件
430f5529视频教程
学习TI公司的430f55xx系列单片机,本资源是非常有帮助的,他是基于ccs平台上操作的,可以很快的学习单片机。
ssd1306驱动12864OLED显示屏msp430g2553函数库
ssd1306驱动12864OLED显示屏msp430g2553函数库,引脚需要自行定义,已测试可行
基于MSP430F5529的智能无线遥控小车设计报告
描述了基于MSP430F5529单片机开发板的无线遥控智能小车,功能包括前后左右运动,停止,多档变速,自动避障,里程速度测试、液晶屏显示,蓝牙通信,读写FLASH等。
msp430f5529时钟笔记(一)
时钟系统结构介绍五个时钟源XT1CLK:低频振荡器VLOCLK:内部超低功耗低频振荡器,典型12kHzREFOCLK:内部调整低频参考振荡器,典型32768HzDCOCLK:内部数字时钟振荡器,可由FLL稳定后得到XT2XLK:高频振荡器三个时钟信号ACLK:辅助时钟MCLK:主时钟SMCLK:子系统时钟...
按键的长按与短按(基于MSP430F5529)
长按与短按的区别只是加上一个适当的延时然后再去判断引脚状态。 定义: #define KEYDIR P2DIR #define KEYIN P2IN #define KEYIFG P2IFG #define KEYIE P2IE #define KEYIES P2IES #define KEYREN P2REN #define S1 BIT0 extern unsigned
MSP430F5529的数据手册
MSP430F5529的数据手册
MSP430F5529例程代码
内含F5529的ADC12,COMPB,DMA,SPI,Flash,Timer,USCI,WDT等例程,帮助初学者快速上手。
MSP430F5529经典例程
MSP430F5529例程,里面包含了中文注释,对初学者有很大帮助
MSP430F5529的lcd液晶显示屏实例
绝对好使的单片机液晶显示程序,可以点亮液晶屏,清屏,可以输出字符和字符串,也可进行格式控制(位置控制)
MSP430设置串口波特率的方法
给定一个BRCLK时钟源,波特率用来决定需要分频的因子N:               N = fBRCLK/Baudrate 分频因子N通常是非整数值,因此至少一个分频器和一个调制阶段用来尽可能的接近N。 如果N等于或大于16,可以设置UCOS16选择oversampling baud Rate模式 注:Round():指四舍五入。 Low-Frequency Baud Rate Mo
設計模式之Adapter(適配器)
定義:將兩個不相容的類別糾合在一起使用,屬於結構型模式,需要有Adaptee(被適配者)和Adaptor(適配器)兩個身份。 爲何使用?我們經常碰到要將兩個沒有關係的類別組合在一起使用,第一解決方案是:修改各自類別的介面,但是如果我們沒有源代碼,或者,我們不願意爲了一個應用而修改各自的介面。 怎麽辦? 使用Adapter,在這兩種介面之間創建一個混合介面(混血兒)。 如何使用?實現Adapter
msp430f5529超声波测距 lcd显示
基于msp430f5529的超声波测距,带有lcd1602的xian'shi
msp430f5529例程\adc
msp430f5529例程\C\MSP430F55xx_adc_01.c
MSP430F5438A 进行AD采样传送至PC机串口调试助手查看(更新)
单通道单次采样、波特率9600、P3.4 3.5连接串口。程序仅运行一次。
基于MSP430内部10位ADC的模数转化并通过串口发送
//****************************************************************************** // MSP-FET430P140 Demo - ADC12, Using the Internal Reference // // Description: // // // MSP430F149 /
AD9834测试程序
使用MSP430单片机完成对AD9834的测试程序,能够稳定输出波形
MSP-EXP430F5529LP开发板003-定时器库函数
  开发中经常用到的就是定时器部分了,有关定时器部分的介绍可以参考下面的链接 http://bbs.eeworld.com.cn/thread-479447-1-1.html 430的定时器的有点类似于51单片机,利用定时器实现P1.0口LED灯1s闪烁代码如下 #include &quot;wdt_a.h&quot; #include &quot;gpio.h&quot; #include &quot;timer_a.h&quot; #defin...
MSP430F5529的官方例程
本文件是MSP430F5529的官方例程,虽然在官网上可以找到,但是很不好找,里面有十几个实验例程,注意代码是在solution这个文件夹里面
ADC12单通道和序列通道单次转换程序 msp430f5529
ADC12单通道和序列通道单次转换程序 msp430f5529
基于msp430的蜂鸣器程序
一份梦想,只要坚持,总会有收获!这是基于msp430的蜂鸣器程序!
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 关于大数据培训 关于云计算