最近采用stm32cubef4进行开发,发现库分层比较清晰,使用起来也比较简单,但是提出以下几个疑问。
1、大家有没有使用stm32cubef4进行开发项目历程或者开发板的完整历程(例如:原子哥的)
2、stm32cubef4库将数据对写与寄存器控制进行了捆,(例如串口:使用中断进行接收,当接收完之后串口接收中断将会关闭,但是我们一般项目正常使用时不会数据接收完之后关闭中断,大部分会将数据与控制进行脱离操作,当然我也可以通过修改库方式实现我想要的功能,但是由于项目紧急,不希望因为这样的改动带来的隐含问题影响后期的项目周期)
3、还有就是上了OS之后__HAL_LOCK锁有没有必要存在
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2、你说的这个关闭串口中断我在HAL库中没有遇到过,我也用过USART1的串口接收中断,没有你说的这个当接收数据后这个中断就关闭了的问题。
4、至于cube库上面的__HAL_LOCK锁有没有用,这个东西因人而异,如果你没有用到这个功能,那就说明对你来说它没用,不过HAL库中的大多数情况都用到了LOCK锁,尤其是外设初始化的时候。
帮顶
---------------------------------
贴段代码,这里就是UART_Receive_IT的处理,当接受计数为0时则会关闭中断!
if(--huart->RxXferCount == 0)
{
__HAL_UART_DISABLE_IT(huart, UART_IT_RXNE);
/* Check if a transmit process is ongoing or not */
if(huart->State == HAL_UART_STATE_BUSY_TX_RX)
{
huart->State = HAL_UART_STATE_BUSY_TX;
}
else
{
/* Disable the UART arity Error Interrupt */
__HAL_UART_DISABLE_IT(huart, UART_IT_PE);
/* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */
__HAL_UART_DISABLE_IT(huart, UART_IT_ERR);
huart->State = HAL_UART_STATE_READY;
}
1)、改库-让其接收完不关闭中断
2)、还有一种就是在他的回调中在次开启中断,这种开开关关不知道会不会对芯片存在影响,而且感觉画蛇添足!
就我个人驭剑,CUBE库完全可以把数据处理与寄存器关系完全脱离开来,这样的灵活性才更高!
2、__HAL_LOCK这个宏关闭其功能会不会造成什么影响呢?
一周热门 更多>