请教大神,*(u16 *)中右边的*号是什么意思?

2020-01-04 19:01发布

在STM32  FSMC配置里看到这样一句

*(u16 *) (Bank1_SRAM3_ADDR + WriteAddr) = *pBuffer++;

请问*(u16 *)中,u16后面的*号是什么意思?

网上找了好久,没找到相关资料
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
37条回答
loohoo0302
1楼-- · 2020-01-07 21:13
学习了
xnliuxiwen
2楼-- · 2020-01-08 01:41
回复【25楼】XL_J

这一段代码有意思(51单片机平台)
int main(void)
{
    unsigned char code reset[]={0xe4,0xc0,0xe0,0xc0,0xe0,0x32};   /* 复位代码,属于机器码                  */
    (*((void (*)())(reset)))();                                   /* 将reset数组当函数调用                 */
}


(原文件名:s.jpg)
<center><a class=tt16 onclick="fnquickimagequote(this,'files_49/ourdev_709002xumw8j.jpg','原文......
-----------------------------------------------------------------------

你这个也学习过嘿嘿。挺实用的嘛。
yss315
3楼-- · 2020-01-08 05:44
由*(^_^*)引发的血案。。。。。
bluelool
4楼-- · 2020-01-08 08:57
血案
omega333
5楼-- · 2020-01-08 10:48
 精彩回答 2  元偷偷看……
byrin219
6楼-- · 2020-01-08 12:25
*(u16 *) (Bank1_SRAM3_ADDR + WriteAddr) = *pBuffer++;

Bank1_SRAM3_ADDR + WriteAddr 单片机只能识别为一个十六进制数值,具体是数据还是地址,它并不能自动区分.

(u16 *) (Bank1_SRAM3_ADDR + WriteAddr) 对此数据进行强制转换,表明此数值为一个无符号的短整型地址指针值.

*(u16 *) (Bank1_SRAM3_ADDR + WriteAddr) 则是获取指针所指向地址处的内容.

楼主这句话的意思是将指针变量pBuffer所指向的数值送至 *(u16 *) (Bank1_SRAM3_ADDR + WriteAddr) 地址处,然后自增 1.

一周热门 更多>