[已解决]【tuyaos】PHY6222 DMA打开宏后找不到文件
1)开发包全称:tuyaos-subdev-bt_3.8.3_phy6222_ble_ble-common_1.0.0.tar
2)问题现象:用SPI驱动SW2811,需要打开DMA,但是打开宏后编译器找不到dma.h文件
3)复现流程:
4)发生时间:
5)iPhone 14,涂鸦智能线上版本,V5.6.1(20231023190929)
1)开发包全称:tuyaos-subdev-bt_3.8.3_phy6222_ble_ble-common_1.0.0.tar
2)问题现象:用SPI驱动SW2811,需要打开DMA,但是打开宏后编译器找不到dma.h文件
3)复现流程:
4)发生时间:
5)iPhone 14,涂鸦智能线上版本,V5.6.1(20231023190929)
用keil加一下
文档里说不能用KEIL加。虽然KEIL是很方便
如果使用Keil开发方便是可以使用Keil的,文档里禁止在Keil中手动添加头文件或源文件,是因为使用vscode编译的过程中会重新生成Keil工程文件,即便使用keil添加头文件/源文件也会被vscode生成的keil工程文件覆盖掉,导致开发者产生困惑。
如果明白了这个原理,是可以直接在keil中添加头文件的,只是添加后就不要再使用vscode进行编译了,否则就需要重新添加头文件。
逻辑的院子 2023年 Nov 14日 18:27如果使用Keil开发方便是可以使用Keil的,文档里禁止在Keil中手动添加头文件或源文件,是因为使用vscode编译的过程中会重新生成Keil工程文件,即便使用keil添加头文件/源文件也会被vscode生成的keil工程文件覆盖掉,导致开发者产生困惑。
如果明白了这个原理,是可以直接在keil中添加头文件的,只是添加后就不要再使用vscode进行编译了,否则就需要重新添加头文件。
请教下SPI的DMA初始化这里dma的event函数该怎么写呢?有模板吗?然后该如何发送(只发送)呢?
我这边是分数据包发的,你可以按照你实际使用发包。
Code: Select all
void ty_light_driver_dma_int(DMA_CH_t ch)
{
static uint8_t data_send_cnt = 0;
spi_data_tx.send_cnt --;
if(spi_data_tx.send_cnt == 0){
uint8_t retval = PPlus_SUCCESS;
retval = tuya_ble_free((uint8_t *)spi_data_tx.tx_buffer);
spi_data_tx.spi_data_send_flag = 0;
spi_data_tx.send_cnt = 0;
spi_data_tx.tx_buffer_len = 0;
data_send_cnt = 0;
if(retval != PPlus_SUCCESS){
TUYA_APP_LOG_ERROR("spi_data_tx != PPlus_SUCCESS!\n");
}
// TUYA_APP_LOG_ERROR("ok\n");
// TUYA_APP_LOG_ERROR("ty_light_dma_data_send ok!\n");
}else{
data_send_cnt ++;
if(spi_data_tx.send_cnt == 1){
hal_spi_transmit(&ty_spi_ptr, SPI_TXD, &spi_data_tx.tx_buffer[(DMA_H0_DATA_MAX_LEN*data_send_cnt)], NULL, (spi_data_tx.tx_buffer_len%DMA_H0_DATA_MAX_LEN), 0);
}else{
hal_spi_transmit(&ty_spi_ptr, SPI_TXD, &spi_data_tx.tx_buffer[DMA_H0_DATA_MAX_LEN*data_send_cnt], NULL, DMA_H0_DATA_MAX_LEN, 0);
}
}
}
逻辑的院子 2023年 Nov 14日 18:27如果使用Keil开发方便是可以使用Keil的,文档里禁止在Keil中手动添加头文件或源文件,是因为使用vscode编译的过程中会重新生成Keil工程文件,即便使用keil添加头文件/源文件也会被vscode生成的keil工程文件覆盖掉,导致开发者产生困惑。
如果明白了这个原理,是可以直接在keil中添加头文件的,只是添加后就不要再使用vscode进行编译了,否则就需要重新添加头文件。
我也遇到了这个问题,请问有没有方法直接在VSCODE里面解决这个问题?
在vscode里面也可以解决,但是相对麻烦一点,可以打开 “\software\TuyaOS\vendor\phy6222_ble\toolchain\templates\vendor.json” 文件,然后仿照已有的格式添加需要的.c/.h文件,然后使用vscode重新编译即可。
逻辑的院子 2023年 Nov 17日 18:20在vscode里面也可以解决,但是相对麻烦一点,可以打开 “\software\TuyaOS\vendor\phy6222_ble\toolchain\templates\vendor.json” 文件,然后仿照已有的格式添加需要的.c/.h文件,然后使用vscode重新编译即可。
感谢,按照您的方法编译可以