专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
msp430 uart收发模块:直接用有线连接,一个430发,另外一个接收。出现了以下问题。
2019-03-24 12:25
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
6589
6
1086
首先是发送模块,我对发送的缓冲区的数据都在LCD上进行了显示测试,结果好像没问题。下面是这部分代码
#include
char Data[11]=; //这是接收要显示的数据
void main()
{
WDTCTL=WDTPW+WDTHOLD; //关闭看门狗
initClock(); //系统时钟初始化
Init(); //UART初始化
init_lcd(); //lcd初始化用于验证是否传送
while(1){
while((IFG1&UTXIFG0)==0); //当正在传输数据,此时不可以再次发送数据;知道发送完成之后才进入下一个状态开始传输数据;
for(i=0;i<=11;i++)
{
TXBUF0=Data[i];
Lcd_InsWrite(1,TXBUF0); //将缓冲区的数据写到LCD中,结果确实可以正常显示MSP430 Demo,能否说明这部分没有问题呢?还请各位多多指导
delay(200);
if(i==11)
{
IFG1|=UTXIFG0; //重复传送
Lcd_InsWrite(0,0X80);
delay(20);
}
}
}
复制代码
接着是接收部分,我在这个地方最为疑惑的是,怎么也进入不了中断服务子程序啊,怀疑是不是这里的问题。
#include
char Data[20],Buffer[20];
unsigned char j,count;
void main()
{
WDTCTL=WDTPW+WDTHOLD; //关闭看门狗
initClock(); //系统时钟初始化
Init(); //UART初始化
init_lcd(); //lcd初始化用于显示接收的数据
_EINT(); //开放总中断
while(1);
}
void init(void)
{
UCTL0|=SWRST; //SWRST复位
UCTL0|=CHAR+MM; //8位数据位,1位停止位,地址位模式
UBR00=0x03;
UBR01=0x00;
UMCTL0=0x4A; //使用32kHZ晶振,波特率为9600bps
UTCTL0=0x10; //选定ACLK(32kHZ晶振)为时钟源
ME1|=0x30; //UART发送,接收模块允许。
P3SEL=0xC0; //P3.6、P3.7由UART1发送模块占用
P3DIR=0x40; // P3.6输出
UCTL0 &=~SWRST; //打开UART模块
IE1=URXIE0; //接收允许中断
}
//逐步运行了,怎么也进不去中断服务子程序
#pragma vector=UART1RX_VECTOR
__interrupt void UART1RX(void)
{
Data[count++]=RXBUF1; //数据存入Data数组中
If(Data[count++]==0) //是否到达末尾
{
for(j=0;j
Buffer[j]=Data[j]; //复制字符串
write_lcd(Buffer[j]); //写入到LCD之中
}
}
}
复制代码
此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
shenlei190810
2019-03-25 05:44
原帖由
obentul
于 2013-7-11 11:05 发表
接收和发送中断标志位在初始化里面复位一下,46行后面
IE1=URXIE0; //接收允许中断
这一行吗?就是打开接收允许中断啊,没感觉有啥问题啊。能不能详细点啥问题呢?新手。
加载中...
查看其它6个回答
一周热门
更多
>
相关问题
相关文章
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
这一行吗?就是打开接收允许中断啊,没感觉有啥问题啊。能不能详细点啥问题呢?新手。
一周热门 更多>