ch579写TMR
第一次使用变量存地址
输出,没写进去
第二次直接写个一样的常量地址
输出就是正常的
有人知道为什么吗?竟有这种事,第一次遇到。
热门产品 :
CH32L103: 32位PDUSB低功耗单片机
ch579写TMR
第一次使用变量存地址
输出,没写进去
第二次直接写个一样的常量地址
输出就是正常的
有人知道为什么吗?竟有这种事,第一次遇到。
这个是基础C问题,你1的temp并没有指向0x4000200c,你是赋值temp的值是0x4000200c,你应该uint32* temp = (uint32*)0x4000200c,另外,地址等值最好用宏定义,这是个好习惯。
你估计没仔细看,我不需要temp 地址指向0x4000200C,*( type * )value 代表将这个变量强转为地址,再指向这个地址。不是你想的取出temp的地址,再转类型指针,俩步的打印都是一样的,按照你说的,第二步打印*( uint32_t * )temp 根本打印不出来正确的数。不信你试试。
官方例程的DMA地址赋值,就是我这个的反向操作,地址强转变量,还割掉了前16位。不用宏定义的就是要玩骚操作,可惜玩出了BUG