mirror of
https://gitee.com/dlmu-cone/bf_original_balance_chassis
synced 2026-07-25 03:47:47 +08:00
更新了部分文档,提升了遥控器解析的可读性,增加了dji电机守护线程,修复裁判系统未初始化导致任务超时
This commit is contained in:
@@ -15,7 +15,7 @@ IICInstance *IICRegister(IIC_Init_Config_s *conf)
|
||||
instance = (IICInstance *)malloc(sizeof(IICInstance));
|
||||
memset(instance, 0, sizeof(IICInstance));
|
||||
|
||||
instance->dev_address = conf->dev_address << 1;
|
||||
instance->dev_address = conf->dev_address << 1; // 地址左移一位,最低位为读写位
|
||||
instance->callback = conf->callback;
|
||||
instance->work_mode = conf->work_mode;
|
||||
instance->handle = conf->handle;
|
||||
|
||||
@@ -2,13 +2,18 @@
|
||||
|
||||
> 预计增加模拟iic
|
||||
|
||||
## 注意事项
|
||||
|
||||
使用时写入地址,不需要左移!!!
|
||||
|
||||
cubemx未配置dma时请勿使用dma传输,其行为是未定义的。
|
||||
|
||||
## 总线机制详解
|
||||
|
||||
关于I2C的序列传输,Restart condition和总线仲裁,请看:
|
||||
|
||||
https://blog.csdn.net/NeoZng/article/details/128496694
|
||||
|
||||
https://blog.csdn.net/NeoZng/article/details/128486366
|
||||
|
||||
|
||||
使用序列通信则在单次通信后不会释放总线,继续占用直到调用传输函数时传入`IIC_RELEASE`参数. 这个功能只在一条总线上挂载多个主机的时候有用.
|
||||
|
||||
cubemx未配置dma时请勿使用dma传输,其行为是未定义的。
|
||||
@@ -130,11 +130,9 @@ void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi)
|
||||
{
|
||||
// 先拉高片选,结束传输,在判断是否有回调函数,如果有则调用回调函数
|
||||
HAL_GPIO_WritePin(spi_instance[i]->GPIOx, spi_instance[i]->cs_pin, GPIO_PIN_SET);
|
||||
// @todo 后续添加holdon模式,由用户自行决定何时释放片选,允许进行连续传输
|
||||
if (spi_instance[i]->callback != NULL) // 回调函数不为空, 则调用回调函数
|
||||
{
|
||||
|
||||
spi_instance[i]->callback(spi_instance[i]);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,8 +91,7 @@ void SPITransRecv(SPIInstance *spi_ins, uint8_t *ptr_data_rx, uint8_t *ptr_data_
|
||||
*
|
||||
* @param spi_ins spi实例指针
|
||||
* @param spi_mode 工作模式,包括阻塞模式(block),中断模式(IT),DMA模式.详见SPI_TXRX_MODE_e的定义
|
||||
* @param force_set_flag 强制设置标志,当该标志为1时,强制停止当前spi的收发,并切换到新的工作模式;
|
||||
* 当该标志为0时,如果当前spi正在收发,则不会切换工作模式,等待传输完成后切换.
|
||||
* @todo HAL已经提供了防止重入的机制,因此强制设置标志可以去掉,也不需要再判断spi是否正在收发
|
||||
*
|
||||
* @todo 是否直接将mode作为transmit/recv的参数,而不是作为spi实例的属性?两者各有优劣
|
||||
*/
|
||||
void SPISetMode(SPIInstance *spi_ins, SPI_TXRX_MODE_e spi_mode);
|
||||
|
||||
Reference in New Issue
Block a user