[求助]我用的H08MR16单片机SCI老出错 SCDR不能读写 请教各位
- UID
- 339383
- 性别
- 男
|
[求助]我用的H08MR16单片机SCI老出错 SCDR不能读写 请教各位
void main(void) { EnableInterrupts; /* enable interrupts */
CONFIG=0x09; // 关闭看门狗,5V操作模式 //CONFIG=0x10; // 选择外部晶振作为时钟源 /*SCI初始化*/ SCBR=0x04; //波特率4800 SCC1=0x4c; //正常双通模式,输出不翻转,8数据格式无奇偶校检 //SCC2=0xfc; // SCI非唤醒工作状态 SCC3用在9位数据状态的时候 SCC2=0x3d; for(;;); }
interrupt 22 void INTSCI(void) { //SCBR=0x04; //波特率4800 if(SCS1_SCTE==1) asm{ LDA #0x12 STA SCDR } ; }
出错了显示的SCDR为 undefined unsigned register
后来我把这个中断关了用软件中断 程序可以运行 但窜口发送的是FE 不是我写入寄存器SCDR的数据.我用STA SCDR 观察不到发送寄存器有被修改过
请教各位了
我的联系方式Q:470760946 一定不吝赐教 急中!!! |
|
|
|
|
|
- UID
- 104631
- 性别
- 男
|
你的发送中断允许好像没有放开
另外,每发送一个字节完成后都应该清一下SCTE位 |
|
|
|
|
|
- UID
- 339383
- 性别
- 男
|
哦 不好意思,没改过来,其实上面程序中的两个SCC2我都试过了, 0X3D那个是我后来关了 用的软中断,程序就可以运行了 不过就是每次复位一次才发出来一个数据FE 我认为这是握手码 也就是SCI引导位 而没有发送我写进去SCDR的0X12 估计是程序哪没编好 我换了一个08的片子编程 也还是这个问题 苦恼啊 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
|
|
|
|
|
- UID
- 339383
- 性别
- 男
|
寄存器头文件出问题了? 我是用的CODWARRY向导生成的啊 没有动过他们啊 楼上的可不可以说具体点啊? |
|
|
|
|
|
- UID
- 339383
- 性别
- 男
|
MOV #0x01,SCDR
loop:BRCLR 7,SCS1,loop
MOV #5,SCDR
loop2:BRCLR 7,SCS1,loop2
现在可以发送了 程序如上 但 我写0X01 他发送的是FE 我写0X05 他发送的是E6 好象有点规律在里面 到底是怎么回事啊 |
|
|
|
|
|