OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4064|回复: 4

mini2440 给地址赋值问题

[复制链接]

23

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2011-8-21
在线时间
57 小时
发表于 2013-2-17 12:40:45 | 显示全部楼层 |阅读模式

我在给mini2440 写DM9000程序时写了以下语句。
#define DM_ADD  (*(( volatile unsigned short *) 0x20000300))//定义DM9000地址端口  该地址是 0x20000300 ,这个地址是正确的
u16 temp=0x1234;
DM_ADD=temp ;
temp=DM_ADD;
经分析最后temp的值应该是0x1234.但是我仿真的时候发现temp的值却是0x1212.
当我把第二句改为
u16 temp=0x2234; 
是temp的值就成了0x2222.
当我把第二句改为
u16 temp=0x4434; 
是temp的值就成了0x4444. 
也就是说写入 DM_ADD 高低字节的都是temp的高字节。
请教高手。这是什么原因?







正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1863
金钱
1863
注册时间
2011-3-29
在线时间
139 小时
发表于 2013-2-17 16:37:00 | 显示全部楼层
 没道理啊。你把整个程序段贴出来吧。
业余程序玩家。
回复 支持 反对

使用道具 举报

23

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2011-8-21
在线时间
57 小时
 楼主| 发表于 2013-2-17 18:15:03 | 显示全部楼层
回复【2楼】ofourme:
---------------------------------
#define DM_ADD (*(( volatile unsigned short *) 0x20000300))

#define DM_CMD (*(( volatile unsigned short *) 0x20000304))




 

void  __osmain(void)
{
    
   u16 temp=0x1234;
irq_init();
   BSP_UartInit(Uart0,9600);
//DM9000_init();
 
    while(1)   
    {  
 DM_CMD=temp ;
    temp=DM_CMD;
 
 if(temp==0X1234 )
 {
    Uart_SendU16( Uart0, temp); 
 } 
 else
 {
    Uart_SendString(Uart0,"错误了!"); 
 
    Uart_SendU16( Uart0, temp); 
 
 }
    }  
   
 
  
 
 
 }
回复 支持 反对

使用道具 举报

23

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2011-8-21
在线时间
57 小时
 楼主| 发表于 2013-2-17 18:16:04 | 显示全部楼层
回复【3楼】duhui75:
---------------------------------
回复【2楼】ofourme:
---------------------------------
你看程序,结果每次串口都输出错误
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1863
金钱
1863
注册时间
2011-3-29
在线时间
139 小时
发表于 2013-2-17 19:30:30 | 显示全部楼层
Uart_SendU16这个函数写错了吧。要不就是大小端没设好。 要不就是SFR端口输入输出模式的问题,写和读的值可能本来就是不一样的。
业余程序玩家。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 23:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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