Toggle navigation
科创
{{ getSearchSuggestionLabel(suggestion) }}
{{ part.text }}
查看更多
登录
 
注册
电波
论坛
专栏
应用
登录
注册
{{ getSearchSuggestionLabel(suggestion) }}
{{ part.text }}
查看更多
论坛
>
电子信息
>
电子技术
>
嵌入式
文号
t29829
阅读
4429
回复
4
收藏
3
stm32的程序在MDK里为什么不能这么写??
10班陈大葱22号
2010/10/13
电子技术
IP:黑龙江
在stm32的库函数立里,对GPIOA的BRR寄存器操作语句还原回来是这样的语句: ((GPIO_TypeDef *) 0x40010800)->BRR=0x00000001;
那为什么我这条语句就不行呢:
((uint32_t *) 0x4001080c)=0x00000000;
错误信息:..\main.c(66): error: #137: expression must be a modifiable lvalue ,大概意思是不能给一个数字赋值
为什么这样写就不行呢?我想这么来写内存.
来自:
电子信息
/
电子技术
/
嵌入式
4
0
全部
只看作者
10班陈大葱22号
作者
16年3个月前
IP:未同步
261668
1楼
ourdev上有人指出了,应该是(* (uint32_t *) 0x4001080c)=0x00000000;
加载全文
引用
评论
0
20061002838
16年2个月前
IP:未同步
265043
2楼
(*(uint32_t *) 0x4001080c)=0x00000000;
写成这样才行(uint32_t *) 是强制类型转换,把后面的数字转换成指针,之后你用指针还要加个*取数据运算符才能用;
另外最好写成(*(volatile uint32_t *) 0x4001080c)=0x00000000;避免MDK在优化的时候出现问题
加载全文
引用
评论
0
lulu980232
14年11个月前
IP:未同步
355288
3楼
[s:274] 很棒!
加载全文
引用
评论
0
全部
只看作者
在列表中查看
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
编辑
删除
{{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
保存
取消
我也是有底线的
保存中...
保存