查看: 1743|回复: 1

[其他] AW60芯片SCI配置为9个数据位,偶校验后出错

[复制链接]

该用户从未签到

6

主题

24

帖子

0

注册会员

Rank: 2

积分
63
最后登录
1970-1-1
发表于 2014-9-4 13:28:43 | 显示全部楼层 |阅读模式
AW60芯片SCI配置为9个数据位,偶校验。初始化代码如下,代码上电运行正常,通过串口发送一个数据后,接收中断一直重复进入,无法关闭。
各位帮忙看看,哪里问题。?


void uart0_init(void)
{
/* SCI1C1: LOOPS=0,SCISWAI=0,RSRC=0,M=0,WAKE=0,ILT=0,PE=0,PT=0 */
SCI1C1 = 0x12;  
/* SCI1C3: R8=0,T8=0,TXDIR=0,TXINV=0,ORIE=0,NEIE=0,FEIE=0,PEIE=0 */
SCI1C3 = 0x00;   
/* SCI1S2: BRK13=0,RAF=0 */
SCI1S2 = 0x05;        
/* SCI12C2: TIE=0,TCIE=0,RIE=1,ILIE=0,TE=1,RE=1,RWU=0,SBK=0 */
SCI1C2 = 0x00;     
/* SCI1BD: SBR12=0,SBR11=0,SBR10=0,SBR9=0,SBR8=0,SBR7=0,SBR6=0,SBR5=1,SBR4=1,SBR3=0,SBR2=1,SBR1=0,SBR0=0 */
SCI1BD = (word)0x34;                                      
/* SCI1C2: TIE=0,TCIE=0,RIE=1,ILIE=0,TE=1,RE=1,RWU=0,SBK=0 */
//SCI1C2 = 0x2C;                                      
SCI1C2 |= ( SCI1C2_TE_MASK | SCI1C2_RE_MASK | SCI1C2_RIE_MASK);                          
}

__interrupt VectorNumber_Vsci1rx void SCI_RX(void) //
{
    byte  Data;                 /* Temporary variable for data */
    if (SCI1S1_RDRF==0) return;
    (void)SCI1S1;      
   Data = SCI1D;  
  
}
我知道答案 目前已有1人回答
回复

使用道具 举报

该用户从未签到

6

主题

24

帖子

0

注册会员

Rank: 2

积分
63
最后登录
1970-1-1
 楼主| 发表于 2014-9-4 13:57:22 | 显示全部楼层
void uart0_init(void)
{
/* SCI1C1: LOOPS=0,SCISWAI=0,RSRC=0,M=0,WAKE=0,ILT=0,PE=0,PT=0 */
SCI1C1 = 0x12;  
/* SCI1C3: R8=0,T8=0,TXDIR=0,TXINV=0,ORIE=0,NEIE=0,FEIE=0,PEIE=0 */
SCI1C3 = 0x00;   
/* SCI1S2: BRK13=0,RAF=0 */
SCI1S2 = 0x00;        
/* SCI12C2: TIE=0,TCIE=0,RIE=1,ILIE=0,TE=1,RE=1,RWU=0,SBK=0 */
SCI1C2 = 0x00;     
/* SCI1BD: SBR12=0,SBR11=0,SBR10=0,SBR9=0,SBR8=0,SBR7=0,SBR6=0,SBR5=1,SBR4=1,SBR3=0,SBR2=1,SBR1=0,SBR0=0 */
SCI1BD = (word)0x34;                                      
/* SCI1C2: TIE=0,TCIE=0,RIE=1,ILIE=0,TE=1,RE=1,RWU=0,SBK=0 */
//SCI1C2 = 0x2C;                                      
SCI1C2 |= (SCI1C2_RE_MASK | SCI1C2_RIE_MASK);  
//SCI1C1_PE = 1;
//SCI1C1_PT = 0;//20140902 偶校验                           

}
也是不行;

void uart0_init(void)
{
/* SCI1C1: LOOPS=0,SCISWAI=0,RSRC=0,M=0,WAKE=0,ILT=0,PE=0,PT=0 */
SCI1C1 = 0x00;  
/* SCI1C3: R8=0,T8=0,TXDIR=0,TXINV=0,ORIE=0,NEIE=0,FEIE=0,PEIE=0 */
SCI1C3 = 0x00;   
/* SCI1S2: BRK13=0,RAF=0 */
SCI1S2 = 0x00;        
/* SCI12C2: TIE=0,TCIE=0,RIE=1,ILIE=0,TE=1,RE=1,RWU=0,SBK=0 */
SCI1C2 = 0x00;     
/* SCI1BD: SBR12=0,SBR11=0,SBR10=0,SBR9=0,SBR8=0,SBR7=0,SBR6=0,SBR5=1,SBR4=1,SBR3=0,SBR2=1,SBR1=0,SBR0=0 */
SCI1BD = (word)0x34;                                      
/* SCI1C2: TIE=0,TCIE=0,RIE=1,ILIE=0,TE=1,RE=1,RWU=0,SBK=0 */
//SCI1C2 = 0x2C;                                      
SCI1C2 |= (SCI1C2_RE_MASK | SCI1C2_RIE_MASK);  
//SCI1C1_PE = 1;
//SCI1C1_PT = 0;//20140902 偶校验                           

}
改为8个数据位,无校验。接收正常。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-21 06:32 , Processed in 0.086316 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表