我是C ++或freertos的新手,但我尝试仅使用1针为外部LED供电,但出现错误
expected primary-expression before ',' token
GPIO_PinWrite(led, led_pin, 0u)
我也用另一个引脚写得到了这个^^
此问题已通过删除定义后面的半格来解决
我不知道如何制作gpio pinWrite,但我复制了裸机功能示例中的那个。
这是我正在使用imxrt1050-evkb的任务
**this is standard import by MCUXpresso**
#include <stdio.h>
#include "board.h"
#include "peripherals.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "MIMXRT1052.h"
#include "fsl_debug_console.h"
**this is freeRTOS**
#include "FreeRTOSConfig.h"
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#define led SEMC_D12;
#define led_pin GPIO_EMC_34;
volatile bool g_pinSet = false;
void vOnOff(void *pvParameters)
{
while(true){
vTaskDelay(200);
PRINTF("Hello led\n");
if(g_pinSet)
{
GPIO_PinWrite(led, led_pin, 1u);
g_pinSet = true;
}
else
{
GPIO_PinWrite(led, led_pin, 0u);
g_pinSet = false;
}
}
}
int main(void) {
gpio_pin_config_t led_config = {kGPIO_DigitalOutput, 0, kGPIO_NoIntmode};
/* Init board hardware. */
BOARD_InitBootPins();
BOARD_InitBootClocks();
BOARD_InitBootPeripherals();
/* Init FSL debug console. */
BOARD_InitDebugConsole();
// GPIO_PinInit(led , led_pin , &led_config);
xTaskCreate(
(TaskFunction_t) vOnOff,
"task3",
configMINIMAL_STACK_SIZE,
NULL,
10,
NULL
);
vTaskStartScheduler();
return 0 ;
}
我相信这里的代码^^是我在此示例中使用的全部功能,因为我在一个沙盒中工作,并且到处都是意大利面条代码
正如您在我的代码中看到的那样,我收到了GPIO_PinInit注释,我不知道我是否需要使用它?
我希望将信号发送到io引脚上
答案 0 :(得分:1)
FreeRTOS是RTOS的抽象-与处理gpio无关。
#define led SEMC_D12;
#define led_pin GPIO_EMC_34;
无效。宏定义后不应有;
。由于存在;
,因此编译器会看到:
GPIO_PinWrite(SEMC_D12;, GPIO_EMC_34;, 0u)
,并且存在编译错误。
MCUXpresso SDK API Reference Manual说:
静态无效GPIO_PinWrite(GPIO_Type *基,uint32_t端口,uint32_t引脚,uint8_t输出)
我想您需要4个参数来GPIO_PinWrite
,而不是3个。