打印
[应用相关]

关于SPI寄存器的读取

[复制链接]
2250|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jtingwang|  楼主 | 2008-5-19 09:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void SPI_ClearITPendingBit(SPI_TypeDef* SPIx, u8 SPI_IT)函数中有:

if(SPI_IT == SPI_IT_MODF)
{
    /* Read SR register */
    (void)SPIx->SR;
    
    /* Write on CR1 register */
    SPIx->CR1 |= CR1_SPE_Set; 
}

读取SR寄存器,用(void)SPIx->SR;
这句话不大明白,用(void)SPIx->SR;就表示了读取SR寄存器?这种写法没怎么见过啊!
沙发
香水城| | 2008-5-19 10:38 | 只看该作者

哈哈,以前没见过,这次见识了就学会了!

用(void)SPIx->SR;就表示了读取SR寄存器!

一般读取寄存器都是要把读到的数据赋值到某个变量,但如果不关心读取到的数据则可以用这种写法,但注意被操作的寄存器必须是声明为volatile。

使用特权

评论回复
板凳
jtingwang|  楼主 | 2008-5-19 10:52 | 只看该作者

见识了


见识了...^_^

使用特权

评论回复
地板
ploto| | 2008-6-15 11:57 | 只看该作者

volatile

volatile 是防止该语句被编译器优化。

使用特权

评论回复
5
栏杆| | 2008-6-15 13:24 | 只看该作者

mark!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

67

主题

171

帖子

1

粉丝