将来官方只会提供HAL库和LL库了
实际上HAL库还是非常容易上手,配合工具CubeMX相当好用。
但正如题主所说:HAL库里"绕来绕去",运行效率是比较低。但LL库就完全不同了,LL库和直接操作寄存器几乎没有什么区别。例如:
__STATIC_INLINE void LL_USART_TransmitData8(USART_TypeDef *USARTx uint8_t Value)
{
USARTx->DR = Value;
}
__STATIC_INLINE uint8_t LL_USART_ReceiveData8(USART_TypeDef *USARTx)
{
return (uint8_t)(READ_BIT(USARTx->DR USART_DR_DR));
}
目前大家基本达成共识:初始化用HAL方便,写代码用LL高效。