打印

MSP430串口采用中断方式发送问题

[复制链接]
1142|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Ryze|  楼主 | 2016-12-25 15:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

自己写的查询法发送数据代码如下:分析一下代码有没有错误?

/*************发送一个字节*********/
void Send_Char(unsigned char Ch)          //发送一个字节
{
  TXBUF0=Ch;
  while(!(IFG1&UTXIFG0));                    //等待发送完毕 !(IFG1&UTXIFG0)为0发送未完成  当!(IFG1&UTXIFG0)为1
  IFG1&=~UTXIFG0;                           //发送标志位清零
}
/**********发送一组字符串*********/      
void Send_String(unsigned char *String)    //发送一组字符串
{
    uchar *P;
    P=String;   
  while(*P!='\0')
   {
     Send_Char(*P);
     P++;
   }
}

现在想采用中断的方式发送数据,不知道怎么发送,什么时候发送,发送标志如何产生

相关帖子

沙发
Varus| | 2016-12-25 15:57 | 只看该作者
中断发送比较复杂,首先要有个队列,要进行队列管理。
发送的时候,把数据放入队列内,然后开发送中断。
队列为空的时候,关中断。

使用特权

评论回复
板凳
Snow7| | 2016-12-25 16:14 | 只看该作者
要防止变量的写冲突,在写某些共享的变量时要关中断。

使用特权

评论回复
地板
android2| | 2016-12-25 16:25 | 只看该作者
步骤,1 时钟配置,串口波特率,使能等参数配置
2 开启串口中断
3.开启总中断。
4.void Send_String(unsigned char *String)  函数中将P设置为全局变量,在发送第一个字符之前赋值P=String;
5,将Send_String函数放到你的中断服务函数里面
6.void Send_Char(unsigned char Ch)     这个删掉,用TXBUF0=*P;替代就OK了
7,中断服务函数里面。
IRQ...(void)
{
TXBUF0=*p;
p++;
//然后清除标志位

}

使用特权

评论回复
5
拉克丝| | 2016-12-25 16:42 | 只看该作者
其实最简单的就是下载个官方历程来改吧

使用特权

评论回复
6
309030| | 2016-12-25 17:32 | 只看该作者
中断使能要在发送函数和中断函数中同时控制。
发送数据的时候,写好缓冲区然后使能发送中断。
中断里面,缓冲区为空的时候,就要禁止中断了。

使用特权

评论回复
7
zhangbo1985| | 2016-12-25 19:31 | 只看该作者
利用串口中断的方式发送数据是很有效的,一般不采用查询的方式。

使用特权

评论回复
8
chuntian2016| | 2016-12-25 20:17 | 只看该作者
这是直接的吧数据的送入要发送的Buff的,然后中断查询标志位的

使用特权

评论回复
9
ahhsyf| | 2016-12-25 20:37 | 只看该作者
直接送缓存区,中断中清除标志就OK了。

使用特权

评论回复
10
pmp| | 2016-12-25 20:41 | 只看该作者
发送可以不通过中断执行。

使用特权

评论回复
11
pmp| | 2016-12-25 20:44 | 只看该作者
在中断发送得触发发送中断。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

121

主题

714

帖子

1

粉丝