首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请教班主,一个SCI的怪问题

请教班主,一个SCI的怪问题

1.写485通信,用串口调试助手.只能send不能read.要么只能read不能send.外围元件主要是MAX485.和485-232换转
2.拔掉BDM或不接BDM数据就不正确.ICS Trim Register (ICSTRM)设置改过,但不知道怎么改回.
针对第一个问题相关代码如下:

/**************************发送数据底层函数*******************************/
void SendChar(char s_char)
{
byte dummy;
RS485_RW_PORT=1;

SCIC2 = 0x08;
dummy = SCIS1;
SCID = s_char;
while(!SCIS1_TDRE){
feedCOP();
};
while(!SCIS1_TC){
feedCOP();
};
SCIC2_TE = 0;
RS485_RW_PORT=0;
}

/**************************接收中断*******************************/
interrupt 15 void SCI_RE(void)
{


if (SCIS1_RDRF)
{
rec_buf = SCID;
SCIC2_RE = 1;
if (rec_buf == 0x55 )
{
SendChar(0xAA);
}

}
SCIS1_RDRF=0;
}


谢谢解答.
芯片初时化时,要将FLASH中的TRIM值写入TRIM寄存器中。
海纳百川  有容乃大
解决第二个问题:
extern volatile byte _NVICSTRM @0x0000FFAF;
#define NVICSTRM _NVICSTRM
*************************************
ICSTRM = NVICSTRM;

希望能帮助同样问题的朋友.
返回列表