社区首页
技术讨论创新帖
全部新帖
资料区
社区活动
联系管理员
★ 社区积分制度
★ 新手必读
★ 申请版主★
请
登录
后使用快捷导航
没有帐号?
注册
首页
|
电子技术
|
嵌入式
模拟电子
单片机
电源管理
传感器
半导体
电子应用
|
工业控制
物联网
汽车电子
网络通信
医疗电子
手机便携
测试测量
安防电子
家用电子
机器人
新能源
电子头条
|
社区
|
论坛
测评
博客
大学堂
|
下载
|
下载中心
电路图
精品文集
电路图
|
参考设计
|
Datasheet
|
活动
|
直播
datasheet
datasheet
文章
搜索
登录
注册
中文
En
论坛
切换旧版
电子工程世界-论坛
»
论坛
›
专业技术中心
›
TI技术论坛
›
微控制器 MCU
›
MSP430g2553Launchpad中的USCI的UART模式,求助
返回列表
发新帖
回复
阅
2409
|
回
1
sherlocklee
当前离线
一粒金砂(初级)
最后登录
2015-12-31
在线时间
0 小时
威望
0分
芯积分
0分
(兑换)
E金币
0枚
(兑换)
(兑换)
好友
0
sherlocklee
2
帖子
0
TA的资源
一粒金砂(初级)
+ 好友
私信
楼主
发表于2015-2-28 23:20
只看该作者
MSP430g2553Launchpad中的USCI的UART模式,求助
[复制链接]
用LaunchPad指导书中的USCI的UART模式中的程序进行人机交互,发现总是光有接收没有回复,没有办法控制单片机的P1.0,P1.6LED的亮灭,这是怎么回事啊?
#include "MSP430G2553.h"
#define LED1_ON P1DIR|=BIT0; P1OUT|=BIT0
#define LED1_OFF P1DIR|=BIT0; P1OUT&=~BIT0
#define LED2_ON P1DIR|=BIT6; P1OUT|=BIT6
#define LED2_OFF P1DIR|=BIT6; P1OUT&=~BIT6
#define RX_FIFO_SIZE 16 //接收缓冲区大小宏定义
#define TX_FIFO_SIZE 64 //发送缓冲区大小宏定义
unsigned char Rx_FIFO[RX_FIFO_SIZE]={0}; //UART接收FIFO数组
unsigned int Rx_FIFO_DataNum=0; //UART接收FIFO的“空满”指示变量
unsigned int Rx_FIFO_IndexR=0; //UART接收FIFO的模拟“读指针”变量
unsigned int Rx_FIFO_IndexW=0; //UART接收FIFO的模拟“写指针”变量
unsigned char Tx_FIFO[TX_FIFO_SIZE]={0}; //UART发送FIFO数组
unsigned int Tx_FIFO_DataNum=0; //UART发送FIFO的“空满”指示变量
unsigned int Tx_FIFO_IndexR=0; //UART发送FIFO的模拟“读指针”变量
unsigned int Tx_FIFO_IndexW=0; //UART 发送FIFO 的模拟“写指针”变量
extern unsigned char Rx_FIFO[RX_FIFO_SIZE];
extern unsigned int Rx_FIFO_DataNum;
extern unsigned int Rx_FIFO_IndexR;
extern unsigned int Rx_FIFO_IndexW;
extern unsigned char Tx_FIFO[TX_FIFO_SIZE];
extern unsigned int Tx_FIFO_DataNum;
extern unsigned int Tx_FIFO_IndexR;
extern unsigned int Tx_FIFO_IndexW;
const unsigned char Out_DELETE[]= "\x8 \x8"; /* VT100 backspace and clear */
const unsigned char String1[]="命令:LED1_ON LED1_OFF LED2_ON LED2_OFF\r\n";
const unsigned char String2[]="Please input Command:\r\n";
const unsigned char String3[]="Are you crazy?\r\n";
const unsigned char String4[]="I was born for these!\r\n";
const unsigned char String5[]="I have got it!\r\n";
const unsigned char String6[]="It is easy for me!\r\n";
const unsigned char String7[]="As your wish!\r\n";
void UART_OnTx(void);
void UART_OnRx(void);
void UART_SendString(const unsigned char *Ptr);
void Command_match();
/******************************************************************************************************
* 名 称:Rx_FIFO_WriteChar()
* 功 能:往Rx接收FIFO中写1字节
* 入口参数:Data:待写入FIFO的数据
* 出口参数:1:写入数据成功,0 :写入数据失败
* 说 明:操作FIFO时需要关闭总中断
* 范 例:无
******************************************************************************************************/
char Rx_FIFO_WriteChar(unsigned char Data)
{
if(Rx_FIFO_DataNum==RX_FIFO_SIZE) return(0);
//判断FIFO是否已装满未读数据,如果装满返回0
_DINT(); //操作FIFO前一定要关总中断
Rx_FIFO_DataNum++; //未读取数据个数加一
Rx_FIFO[Rx_FIFO_IndexW]=Data; //将数据写入写读指针位置的FIFO数组
Rx_FIFO_IndexW++; //写指针移位
if (Rx_FIFO_IndexW>=RX_FIFO_SIZE) //判断指针是否越界
Rx_FIFO_IndexW=0; //写指针循环归零
_EINT(); //恢复总中断使能
return(1); //返回成功
}
char Rx_FIFO_ReadChar(unsigned char *Chr)
{
if(Rx_FIFO_DataNum==0) return(0); //判断FIFO是是否有未读数据,如果没有返回0
_DINT(); //操作FIFO前一定要关总中断
Rx_FIFO_DataNum--; //待读取数据个数减一
*Chr=Rx_FIFO[Rx_FIFO_IndexR]; //将读指针位置的FIFO数据赋给指针所指变量
Rx_FIFO_IndexR++; //读指针移位
if (Rx_FIFO_IndexR>=RX_FIFO_SIZE) //判断指针是否越界
Rx_FIFO_IndexR=0; //读指针循环归零
_EINT(); //恢复总中断使能
return(1);
}
void Rx_FIFO_Clear()
{
_DINT(); //操作FIFO前一定要关总中断
Rx_FIFO_DataNum=0; //FIFO 中未读取数据数目清零
Rx_FIFO_IndexR=0; //FIFO 中模拟读指针清零
Rx_FIFO_IndexW=0; //FIFO 中模拟写指针清零
_EINT (); //恢复总中断使能
}
char Tx_FIFO_WriteChar(unsigned char Data)
{
if(Tx_FIFO_DataNum==TX_FIFO_SIZE) return(0);
//判断FIFO是否已装满未读数据,如果装满返回0
_DINT(); //操作FIFO前一定要关总中断
//-----“全新”一次发送数据必须手动触发Tx中断-----
if((Tx_FIFO_DataNum==0) &&( !(UCA0STAT & UCBUSY)))
//判断是否为一次“全新”发送
IFG2 |=UCA0TXIFG; // 手动触发一次
Tx_FIFO_DataNum++; //未读取数据个数加一
Tx_FIFO[Tx_FIFO_IndexW]=Data; //将数据写入写读指针位置的FIFO数组
Tx_FIFO_IndexW++; //写指针移位
if (Tx_FIFO_IndexW >= TX_FIFO_SIZE) //判断指针是否越界
Tx_FIFO_IndexW=0; //写指针循环归零
_EINT(); //恢复总中断使能
return(1); //返回成功
}
char Tx_FIFO_ReadChar(unsigned char *Chr)
{
if(Tx_FIFO_DataNum==0) return(0); //判断FIFO是是否有未读数据,如果没有返回0
_DINT(); //操作FIFO前一定要关总中断
Tx_FIFO_DataNum --; //待读取数据个数减一
*Chr=Tx_FIFO[Tx_FIFO_IndexR]; //将读指针位置的FIFO数据赋给指针所指变量
Tx_FIFO_IndexR++; //读指针移位
if (Tx_FIFO_IndexR>=TX_FIFO_SIZE) //判断指针是否越界
Tx_FIFO_IndexR=0; //读指针循环归零
_EINT(); //恢复总中断使能
return(1); //返回成功
}
void Tx_FIFO_Clear()
{
_DINT(); //操作FIFO前一定要关总中断
Tx_FIFO_DataNum=0; //FIFO 中未读取数据数目清零
Tx_FIFO_IndexR=0; //FIFO 中模拟读指针清零
Tx_FIFO_IndexW=0; //FIFO 中模拟写指针清零
_EINT(); //恢复总中断使能
}
/******************************************************************************************************
* 名 称:USCI_A0_init()
* 功 能:初始化USCI_A0模块为UART模式
* 入口参数:无
* 出口参数:无
* 说 明:UART设为波特率9600,8位数据,无校验,1位停止位
* UART初始化配置较复杂,可以使用Grace配置后再移植代码的方法
* 范 例:无
******************************************************************************************************/
void USCI_A0_init(void)
{
//-----开启IO口的TXD和RXD功能-----
P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
P1SEL2 = BIT1 + BIT2;
//-----设置UART时钟源为ACLK-----
UCA0CTL1 |= UCSSEL_1; // CLK = ACLK
//-----移植Grace配置的波特率参数-----
UCA0BR0 = 0x03; // 32kHz/9600 = 3.41
UCA0BR1 = 0x00;
UCA0MCTL = UCBRS1 + UCBRS0; // Modulation UCBRSx = 3
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
IE2 |= UCA0RXIE + UCA0TXIE; // Enable USCI_A0 TX/RX interrupt
_EINT(); //开总中断
}
/******************************************************************************************************
* 名 称:USCI0TX_ISR()
* 功 能:响应Tx中断服务
* 入口参数:无
* 出口参数:无
* 说 明:凡是中断标志位有可能不被自动清除的,均手动清除一次,以防万一
* 范 例:无
******************************************************************************************************/
#pragma vector=USCIAB0TX_VECTOR
__interrupt void USCI0TX_ISR(void)
{
IFG2&=~UCA0TXIFG; //手动清除标志位
UART_OnTx(); //调用Tx事件处理函数
}
/******************************************************************************************************
* 名 称:USCI0RX_ISR()
* 功 能:响应Rx中断服务
* 入口参数:无
* 出口参数:无
* 说 明:凡是中断标志位有可能不被自动清除的,均手动清除一次,以防万一
* 范 例:无
******************************************************************************************************/
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
IFG2&=~UCA0RXIFG; //手动清除标志位
UART_OnRx(); //调用Rx事件处理函数
}
void Command_match();
void UART_OnTx(void)
{
unsigned char Temp=0;
if(Tx_FIFO_DataNum>0)
{
Tx_FIFO_ReadChar(&Temp); //调用FIFO库函数
UCA0TXBUF= Temp;
}
}
复制代码
此帖出自
微控制器 MCU论坛
最新回复
huybn5776
我调试这个Project时也发生过相同情况 换了几个软件后最后只有Tera Term Pro在我的Win8.1笔记本用的比较正常 有时发现MSP430没回应的话要重插USB再开串口软件连接才行
详情
回复
发表于 2015-3-1 09:51
点赞
关注
(0)
TI培训
回复
分享
扫一扫,分享给好友
复制链接分享
链接复制成功,分享给好友
举报
提升卡
变色卡
千斤顶
huybn5776
huybn5776
当前离线
一粒金砂(中级)
最后登录
2016-8-3
在线时间
65 小时
威望
34分
芯积分
0分
(兑换)
E金币
0枚
(兑换)
(兑换)
好友
0
27
帖子
1
TA的资源
一粒金砂(中级)
+ 好友
私信
沙发
发表于2015-3-1 09:51
只看该作者
我调试这个Project时也发生过相同情况
换了几个软件后最后只有
Tera Term Pro
在我的Win8.1笔记本用的比较正常
有时发现MSP430没回应的话要重插USB再开串口软件连接才行
此帖出自
微控制器 MCU论坛
MSP430设计资料
msp430单片机
智能家居控制系统
回复
举报
返回列表
发新帖
回复
您需要登录后才可以回帖
登录
|
注册
发表回复
回帖后跳转到最后一页
浏览过的版块
工控电子
活动
更多>>
Microchip 直播|多相降压电源控制技术的发展与探讨 报名中!
安世半导体智能工业应用探索站,闯关赢好礼!
PI 电源小课堂:集成式半桥驱动IC BridgeSwitch 2, 助力高效永磁同步电机逆变器的设计
Microchip喊你探索dsPIC33A 芯片,70份好礼等你赢!
【瓜分2500元红包】票选2024 DigiKey “感知万物,乐享生活”创意大赛人气作品TOP3!
DigiKey应用探索站重磅上线!潮流应用,硬核技术探秘,N多干货,一站get!
验证并选择心仪MOSFET,探寻选型奥秘!注册、体验双重好礼等你拿~
免费申请测评 | 泰坦触觉 TITAN Core开发套件
开源项目
更多>>
使用 Sharp 的 PQ070XZ02Z 的参考设计
基于555定时器的七音电子琴设计
5v转3.3Buck模块两则
ADR3430 3V 输出微功率、高精度电压基准的典型应用
TCR5SB44A、150mA、4.4V 输出电压 CMOS 低压降稳压器的典型应用
ADP2147CB-130EVALZ 800 mA、3 MHz 降压稳压器评估板
LTC3630AEDHC 5V 至 76V 输入至 5V 输出、高效率、500mA 稳压器的典型应用电路
使用 NXP Semiconductors 的 TDA2582Q 的参考设计
MC34072ADR2G 交流耦合同相放大器典型应用
MPC567xKEVB: MPC567xK系列评估板
随便看看
RV1106开箱
#RV1106开箱报告前几天,我终于收到了期待已久的LuckfoxRV1106G3开发板。由于最近一直忙于Yocto开发,因此没能及时进行评测。不过,今天我想先分享一下开箱的初体验。##包装及外观开箱时,RV1106G3的包装非常结实,外部印刷清晰,给人一种专业的感觉。打开盒 ...
【MCXN947开发板测评】点阵板显示驱动
【Follow me第二季第4期】汇总提交帖:全部任务_视频提交补充·
【最新活动】TI Store 平台升级新年大狂欢, 亚洲专享优惠码更有TI产品权威指南!
请教关于MSDMA的问题
关于MSP430中断的一些特性
【Altera SoC体验之旅】+ 爱上FPGA SOC的理由
arm芯片选型
查找数据手册?
搜索
EEWorld Datasheet 技术支持
热门标签
源代码
单片机
放大器
TI
ST
电源
分立器件
传感器
测试测量
模拟
双电层电容器
光栅光谱仪
雷达芯片
延时函数
电极电势
磁致伸缩
傅里叶
电路图
PCB
FSK
相关文章
更多>>
苹果M4 Mac mini曝出USB-C接口问题!随机间歇性断开连接
1月17日消息,苹果M4 Mac mini自2024年底发布以来,收获了不少好评,然而近期一些用户在使用过程中发现,该设备的USB-C接口似乎存在连接性问题,给使用带来了不便。 有用户反映M4 Ma
消息称 SK 海力士有望 2 月启动业界最先进 1c nm 制程 DRAM 内存量产
1 月 17 日消息,韩媒 MT(IT之家注:全称 MoneyToday)当地时间今日报道称,SK 海力士近日已成功完成内存业界最先进 1c 纳米制程 DRAM 的批量产品认证,连续多个以 25 块
未经同意出售用户数据,通用汽车遭美国 FTC 处罚
1 月 17 日消息,当地时间周四,美国联邦贸易委员会(FTC)宣布通用汽车及其子公司 OnStar 因未经用户同意出售用户位置和驾驶行为数据,因此将对其进行处罚,包括在五年内禁止向消费者报告机构披
日本三井住友银行推出半导体设备抵押贷款,铠侠已率先获益
联想宣布收购Infinidat,扩充高端企业存储业务
台积电董事长:我们不是美积电 最先进制程不会搬到美国
曝台积电拒绝代工三星Exynos处理器:理由是怕泄密
SK 海力士被曝上半年削减 10% NAND 闪存产量
苹果加入UALink联盟 成员含AMD、英特尔、谷歌等公司
英特尔宣布将逐渐停产第 12 代 Alder Lake 移动处理器,覆盖酷睿、奔腾及赛扬
新帖速递
STM32和无源蜂鸣器播放声音的问题
车规级AECQ200介绍,混合铝电解电容器的选择
嵌入式教程_DSP技术_DSP实验箱操作教程:2-28 搭建轻量级WEB服务器实验
OPA847IDBVR运放器国产替代
AG32VF407测试UART
【得捷电子Follow Me第二期】第一章 收到货物的分享
请问这个红外接收头是什么型号?能用哪个型号代替?谢谢
出售全新未拆封ZYNQ 7Z020 FPGA核心板
用在锂电池供电的水表设置上的LORA模块,当有100块水表集中安装在一个楼道内时,节能
请问一下,当某个端口被设置为 RX0后,这个端口的输入输出方向还有必要设置吗
今年怎么这么难,比疫情时还难,三十了面临失业好迷茫
请教稳压管测试问题
【小华HC32F448测评】关于小华半导体的UART中断发送和PRINTF构造和重定向
【BIGTREETECH PI开发板】 HDMI输出测试
【BIGTREETECH PI开发板】+08.音频测试(zmj)
安世半导体智能工业应用探索站,闯关赢好礼!
点击页面内“开始探索”按钮,填写并提交表单;
请根据序号依次完成3个安世半导体智能工业应用的探索,并根据给出的资料完成共计9题(每个应用3题),答对5题以上的玩家即可获得抽奖资格;
每人仅有一次参与答题的机会,请慎重作答,活动结束后,我们将抽取30位玩家赠送礼品。
查看 »
Microchip 直播|多相降压电源控制技术的发展与探讨 报名中!
直播主题:多相降压电源控制技术的发展与探讨
直播时间:2025年2月25日(星期二)上午10:30-11:30
快来报名!
查看 »
回帖赢好礼 | 关于无线技术的那些事儿
【活动时间】即日起—2025年1月31日
【活动好礼】50元京东卡
查看 »
答题赢好礼,PI电源小课堂第3期来啦!
本期内容:集成式半桥驱动IC BridgeSwitch 2, 助力高效永磁同步电机逆变器的设计
活动时间:即日起-2月28日
看视频答题即可赢取京东卡!
查看 »
Microchip喊你探索 dsPIC33A 芯片,70份好礼等你赢!
活动时间:即日起-1月26日
活动奖励:随身Wi-Fi、家用多功能电烤箱、20000mAh充电宝、50元京东卡
查看 »
DigiKey应用探索站重磅上线!潮流应用,硬核技术探秘,N多干货,一站get!
当月好物、热门技术资源、潮流应用技术、特色活动、DigiKey在线实用工具,干货多多~
查看 »
本周精选下载推荐:电源管理基础Dummies
本周小编给大家带来一本超简单、超干货的电子书——《电源管理基础Dummies》!内容深入浅出,排版舒服简洁,分分钟能get到电源管理最核心的知识内容。
查看 »
下载资料赢好礼!看Vicor模块化电源解决方案如何推动创新
活动时间:即日起-2024年12月31日
如何参与:点击活动页内您想了解的模块,找到资料下载即可参与抽奖,活动结束后统一发奖!
查看 »
验证并选择心仪MOSFET,探寻选型奥秘!注册、体验双重好礼等你拿~
MOSFET 选型有点难
选N沟道MOSFET?还是选P沟道MOSFET?
封装如何选:不同封装尺寸有不同的热阻和耗散功率。
瞬态散热更严苛,热设计需要如何处理?
用东芝在线电路仿真器,一键解锁MOSFET选型的秘密!
查看 »
关闭
站长推荐
1
/9
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
电信业务审批[2006]字第258号函
京公网安备 11010802033920号
Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复
返回顶部
返回列表
论坛首页
版块列表
专业技术中心
TI技术论坛
ST传感器与低功耗无线技术论坛
ADI参考电路
DigiKey得捷技术专区
ADI · 世健工业技术
电子技术交流
嵌入式系统
单片机
国产芯片交流
电机驱动控制
FPGA/CPLD
模拟电子
电源技术
PCB技术
RF/无线
传感器
综合技术交流
下载中心专版
大学堂专版
测评中心专版
创意与实践
电子竞赛
DIY/开源硬件专区
淘e淘
创意市集
行业应用
汽车电子
移动便携
医疗电子
工控电子
安防电子
休息一下
聊聊、笑笑、闹闹
工作这点儿事
为我们提意见&公告
EEWorld颁奖专区
信息发布
最新帖子
最新帖子
最新回复
精华
消灭零回复
测评中心
活动中心
积分兑换
E金币兑换
芯积分
厂商专区
TI技术论坛
ST传感器与低功耗无线技术论坛