Board logo

标题: flash的读取问题 [打印本页]

作者: 碧落星空    时间: 2006-1-20 10:33     标题: flash的读取问题

void send_uart(tU08 date){
    while (SCI0SR1_TDRE!=1);
    SCI0DRL=date;
    while(SCI0SR1_TC==0);
 
}


void send_mem(tU08 len ,tU16* startaddr){
tU16 i;   
    for (i=0;i<=len;i++){
      //send_uart((*startaddr)>>8);
      send_uart(*startaddr);
     
      startaddr++;
    }


}
这是我自己写的从串口输出memory的代码,假如我从4000地址开始的数据是40 FC 80 92。。。。


那么用上面的代码显示的是FC 92 。。。。


这是为什么?如果我把注释的地方打开就可以正常显示,我有点糊涂了。。。


作者: strongchen    时间: 2006-1-20 14:11

这应该与你定义的数据和指针的数据类型有关。
作者: 碧落星空    时间: 2006-1-20 14:15

能不能说得具体一点?
作者: mwm008    时间: 2006-1-21 11:16

tU16* startaddr,你定义的是16位长度|!而你从串口每次发送出去的是8位长度!所以每读一次,当然要发送两次了!
作者: shpdlizj    时间: 2006-1-23 14:52

把TU16 *startaddr改成 TU08 *startaddr就可以了.
作者: 碧落星空    时间: 2006-1-24 08:38

哦哦明白了~谢谢大家~看来基础知识没掌握好呵呵~




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0