本帖最后由 baita 于 2015-4-16 08:07 编辑
在设置8位时STM32F051的SPI发送一个字节为啥这样写必须要强制转换成8位吗?
源码
void SPI_SendData8(SPI_TypeDef* SPIx, uint8_t Data)
{
uint32_t spixbase = 0x00;
/* Check the parameters */
assert_param(IS_SPI_ALL_PERIPH(SPIx));
spixbase = (uint32_t)SPIx;
spixbase += 0x0C;
*(__IO uint8_t *) spixbase = Data;
}
比如用SPI2
spixbase = (uint32_t)SPI2;
spixbase += 0x0C;
*(__IO uint8_t *) spixbase = Data;
而不是SPI2->DR= Data;一句完事,16位是这样的。
难道8位16位发送与这里也有关系?
|