DSP28335想用SCIc进行串行发送与PC通信 20

程序和寄存器图如下本人检查了好多遍但是始终不知为何程序运行完之后查看SCIA的寄存器的值变了而SCIC始终不变#include"DSP2833x_Device.h"#in... 程序和寄存器图如下 本人检查了好多遍 但是始终不知为何程序运行完之后查看SCIA的寄存器的值变了 而SCIC始终不变
#include"DSP2833x_Device.h"
#include"DSP2833x_Examples.h"
void scic_sent_init(void);
void scic_fifo_init(void);
void scic_xmit(int a);
void scic_msg(char*msg);
int n=0;
int b=521;
void main(void)
{
char *msg;
InitSysCtrl();
InitScicGpio();
DINT;
InitPieCtrl();
IFR=0x0;
IER=0x0;
InitPieVectTable();
scic_sent_init();
scic_fifo_init();//初始化了fifo
msg="\r\nHello FangQiang_PC\0";
scic_msg(msg);
msg="\r\nHello JSS\0";
scic_msg(msg);
msg="\r\nHello FQ\0";
scic_msg(msg);
ScicRegs.SCIFFRX.bit.RXFFOVRCLR=1;

}
void scic_sent_init()
{
ScicRegs.SCICCR.all=0x0007;
ScicRegs.SCICTL1.all=0x0002;//只发送不接收
ScicRegs.SCICTL2.all=0x0003;//发送和移位寄存器都是满的 3表示允许接收中断 允许断帧中断 可以改为1因为不要发送功能
//和 允许发送中断但是不能禁止TXRDY置1
ScicRegs.SCICTL2.bit.TXINTENA=1;//功能同上一句变为0x01;
ScicRegs.SCIHBAUD=0x0001;//15MHZ下9600kbt
ScicRegs.SCILBAUD=0x00E7;
ScicRegs.SCICTL1.all=0x0022;//第一个2是软复位 实现初始化 第二个2表示只发不接

}
void scic_xmit(int a)
{
while(ScicRegs.SCIFFTX.bit.TXFFST != 0)//如果fifo不空就等待
{}
ScicRegs.SCITXBUF=a;//fifo空了把a送到SCITXBUF
n++;//发送成功一个就加1
}
void scic_msg(char*msg)
{
int i;
i=0;
while(msg[i]!='\0')
{
scic_xmit(msg[i]);
i++;
}
}
void scic_fifo_init()

{
ScicRegs.SCIFFTX.all=0xE040;
//ScicRegs.SCIFFRX.all=0x204f;//初始化接收fifo
ScicRegs.SCIFFCT.all=0x0;

}
展开
 我来答
easyenter
2014-10-20 · TA获得超过2280个赞
知道大有可为答主
回答量:1786
采纳率:90%
帮助的人:1087万
展开全部
仔细看看SCICCR寄存器和SCIACR寄存器的配置情况,
看看是不是把SCIA的开了,而没有开SCIC的
再就是SCICTL寄存器的配置
把这些控制寄存器的配置都弄好了就OK了
再就是别忘了打开SCIC的时钟
慢慢调下就能通讯了
迪凯特科技(北京)有限公司
2023-07-28 广告
单片机串口通信的原理是利用单片机的串口通信模块,通过把数据转化为一位一位的用时序方式传送数据,实现单片机与外部设备之间的数据通信。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式