dsp2812通过rs232转接线连电脑,串口调试助手无法通信,选的scib 250

#include"DSP281x_Device.h"#include"System.h"unsignedcharSCIB_RX_BUF[16]={0};//接收数据存储区... #include "DSP281x_Device.h"
#include "System.h"

unsigned char SCIB_RX_BUF[16]={0};//接收数据存储区
unsigned char SCIB_TX_BUF[16]={1,2,3,4,5,6,7,8,0};//发送数据存储区
unsigned char N=0;

void Init_SCIB(void);
void Send_Char_SCIA(char temp);
void Send_Char_SCIB(char temp);
void Send_String_SCIB(char *String);
char Get_Char_SCIB(void);
interrupt void SCIB_RXINT(void);
void main(void)
{
InitSysCtrl(); // 系统初始化子程序,在DSP28_sysctrl.c中
Init_SCIB();
Send_String_SCIB("Welcome to LiTian!");
while(1);
}
void Init_SCIB(void)
{
EALLOW;
GpioMuxRegs.GPGMUX.bit.SCITXDB_GPIOG4 = 1; //配置 SCIB-RX
GpioMuxRegs.GPGMUX.bit.SCIRXDB_GPIOG5 = 1; //配置 SCIB-TX
EDIS;
ScibRegs.SCICTL1.bit.SWRESET =0;
ScibRegs.SCICCR.bit.SCICHAR=7; // 字符长度:8 bits
ScibRegs.SCICCR.bit.PARITYENA=0;//禁止奇偶校验
ScibRegs.SCICCR.bit.STOPBITS=0; //停止位为1个
ScibRegs.SCICCR.bit.ADDRIDLE_MODE=0; //空闲线模式协议

//设置波特率
ScibRegs.SCIHBAUD = 0x0001; // 波特率:9600(LSPCLK = 30MHz);
ScibRegs.SCILBAUD = 0x0085;

//使能SCI发送器和接收器
ScibRegs.SCICTL1.bit.RXENA =1; // 使能接收功能
ScibRegs.SCICTL1.bit.TXENA =1; // 使能发送功能

//使能中断(包含外设级、PIE级和CPU级),设置中断向量
ScibRegs.SCICTL2.bit.RXBKINTENA = 1;// 使能SCI接收中断
EALLOW; // 解除寄存器保护
PieVectTable.RXBINT = &SCIB_RXINT;//用SCIB中断函数入口更新PIE向量表
EDIS; // 使能寄存器保护
PieCtrlRegs.PIEIER9.bit.INTx3 = 1;//使能PIE内的 SCIB_RX_INT中断
IER |= M_INT9; // 使能 CPU INT 9
EINT; // 全局中断使能INTM

//退出复位状态
ScibRegs.SCICTL1.bit.SWRESET =1;
}
/*------------------------------------------*/
/*形式参数:char */
/*返回值:void */
/*函数描述:发送一个字符 */
/*------------------------------------------*/
void Send_Char_SCIB(char temp)
{
ScibRegs.SCITXBUF=temp;
while ( ScibRegs.SCICTL2.bit.TXRDY == 0);//状态检测模式
while ( ScibRegs.SCICTL2.bit.TXEMPTY == 0);//状态检测,等待发送标识为空
}
/*------------------------------------------*/
/*形式参数: char *String */
/*返回值:void */
/*函数描述:发送一个字符串 */
/*------------------------------------------*/
void Send_String_SCIB(char *String)
{
while(*String !='\0')
{
Send_Char_SCIB(*String++);
}
}
/*------------------------------------------*/
/*形式参数:void */
/*返回值:char */
/*函数描述:接收一个字符 */
/*------------------------------------------*/
char Get_Char_SCIB(void)
{
DINT;//关闭总中断
while(ScibRegs.SCIRXST.bit.RXRDY != 1);//等待接收完毕
EINT; //开总中断
return (ScibRegs.SCIRXBUF.all); // 返回接收到的数据
}

interrupt void SCIB_RXINT(void)
{
DINT;//关闭总中断
SCIB_RX_BUF[N++]=ScibRegs.SCIRXBUF.bit.RXDT;
PieCtrlRegs.PIEACK.all |= BIT9; //响应中断
EINT; //开总中断
}
展开
 我来答
吾学轩
2018-12-30 · 贡献了超过334个回答
知道答主
回答量:334
采纳率:1%
帮助的人:27万
展开全部
重新试一下 先拔下来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9229a8a
2018-12-19 · TA获得超过1594个赞
知道小有建树答主
回答量:517
采纳率:75%
帮助的人:24.9万
展开全部
进行串口调试
追问
可以具体说说怎么调试吗?线没问题,
追答
先采纳在教你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
世界由我创
2018-12-19 · 贡献了超过574个回答
知道答主
回答量:574
采纳率:1%
帮助的人:41.3万
展开全部
换过方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式