Get Skill

2018-01-16

  > 001  防止数组越界的一种方法

 char array[];
array[n%] = value;

  > 002  超时机制

      在等待某个事件或标志时,设定一定时限,时限到,等待的事件或标志还未发生,则输出一条提示信息

      拒绝死等,即永无时限的等待某个事件或标志发生,这样在调试程序很麻烦,不方便定位问题

 /**
* @brief 使用SPI发送一个字节的数据
* @param byte:要发送的数据
* @retval 返回接收到的数据
*/
u8 bsp_SpiSendByte(u8 byte)
{
SPITimeout = SPI_TIMEOUT; /* 等待发送缓冲区为空,TXE事件 */
while (SPI_I2S_GetFlagStatus(BSP_SPI, SPI_I2S_FLAG_TXE) == RESET)
{
if((SPITimeout--) == )
return SPI_TIMEOUT_UserCallback();
} /* 写入数据寄存器,把要写入的数据写入发送缓冲区 */
SPI_I2S_SendData(BSP_SPI, byte); SPITimeout = SPI_TIMEOUT; /* 等待接收缓冲区非空,RXNE事件 */
while (SPI_I2S_GetFlagStatus(BSP_SPI, SPI_I2S_FLAG_RXNE) == RESET)
{
if((SPITimeout--) == )
return SPI_TIMEOUT_UserCallback();
} /* 读取数据寄存器,获取接收缓冲区数据 */
return SPI_I2S_ReceiveData(BSP_SPI);
} /**
* @brief 等待超时回调函数
* @param None.
* @retval None.
*/
static uint16_t SPI_TIMEOUT_UserCallback(uint8_t errorCode)
{
/* 等待超时后的处理,输出错误信息 */
SPI_ERROR("SPI 等待超时!errorCode = %d",errorCode);
return ;
}

  > 003  spi总线时钟的4种模式

get skill-LMLPHP

05-06 15:58