c语言setcolor用法,错误是未定义符号_setcolor不知道什么意思,

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include "graphics.h"

void field( );

void plane( );

main( )

{

int driver=DETECT,mode=0;

initgraph(&driver,&mode,"c:\\tc");

cleardevice( );

field( );

plane( );

getch( );

setcolr(YELLOW);

setbkcolor(BLACK);

cleardevice( );

closegraph( );

}

void field( )

{

setcolor(12);

circle(320,400,50);

setfillstyle(SOLID_FILL,LIGHTRED);

floodfill(320,375,12);

setbkcolor(7);

setfillstyle(SOLID_FILL,GREEN);

bar(0,380,639,479);

setcolor(14);

line(0,380,639,380);

line(0,390,639,390);

line(0,410,639,410);

line(0,440,639,440);

line(0,479,639,479);

line(0,400,60,380);

line(0,430,130,380);

line(0,479,200,380);

line(120,479,245,380);

line(210,479,280,380);

line(280,479,310,380);

line(320,479,320,380);

line(360,479,330,380);

line(430,479,360,380);

line(520,479,395,380);

line(639,479,450,380);

line(639,430,520,380);

line(639,400,590,380);

getch( );

}

void plane( )

{

int i;

for(i=0;i<115;i++)

{

setcolor(15);

line(50+5*i,50,100+5*i,50);

line(80+5*i,40,95+5*i,50);

line(80+5*i,60,95+5*i,50);

line(45+5*i,45,50+5*i,50);

delay(500);

setcolor(getbkcolor( ));

line(50+5*i,50,100+5*i,50);

line(80+5*i,40,95+5*i,50);

line(80+5*i,60,95+5*i,50);

line(45+5*i,45,50+5*i,50);

}

}

不知道那错了

我编的是一个绘制图�

非常抱歉给你带来困扰。在GD32F1系列的库中,GPIO的宏定义稍有不同。我们需要使用`GPIO_MODE_OUT_PP`来设置推挽输出模式。此外,`gpio_init`函数的参数顺序也需要调整。 以下是更新后的代码示例: ```c #include "gd32f1x0.h" #define LED_NUM 8 // 灯条上LED的数量 // 定义WS2812B灯条的RGB颜色结构体 typedef struct { uint8_t red; uint8_t green; uint8_t blue; } WS2812B_Color; // WS2812B灯条引脚定义 #define LED_PORT GPIOB #define LED_PIN GPIO_PIN_5 // WS2812B灯条初始化函数 void WS2812B_Init(void) { // 配置引脚为推挽输出模式 gpio_init(LED_PORT, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, LED_PIN); // 关闭所有的LED灯 for (int i = 0; i < LED_NUM; i++) { WS2812B_SetColor(i, 0, 0, 0); } } // 设置WS2812B灯条上某个LED的颜色 void WS2812B_SetColor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue) { // 定义计数器变量 uint8_t cnt; // 关中断 cnt = __get_PRIMASK(); __disable_irq(); // 发送颜色数据 for (int i = 7; i >= 0; i--) { if (bitband_getbitval(red, i)) { // 发送1的数据信号 gpio_bit_set(LED_PORT, LED_PIN); __ASM volatile("nop"); __ASM volatile("nop"); __ASM volatile("nop"); gpio_bit_reset(LED_PORT, LED_PIN); } else { // 发送0的数据信号 gpio_bit_set(LED_PORT, LED_PIN); __ASM volatile("nop"); gpio_bit_reset(LED_PORT, LED_PIN); __ASM volatile("nop"); } } // 启用中断 __set_PRIMASK(cnt); } int main(void) { // 初始化WS2812B灯条 WS2812B_Init(); while (1) { // 设置第一个LED为红色 WS2812B_SetColor(0, 255, 0, 0); // 延时一段时间,可根据需要调整 delay_xms(1000); // 设置第一个LED为绿色 WS2812B_SetColor(0, 0, 255, 0); // 延时一段时间,可根据需要调整 delay_xms(1000); // 设置第一个LED为蓝色 WS2812B_SetColor(0, 0, 0, 255); // 延时一段时间,可根据需要调整 delay_xms(1000); } } ``` 这次代码已经更新,使用了正确的宏定义并修复了函数声明不兼容的问题。请确保你的开发环境中包含了正确的头文件,并使用了GD32F1系列相关的宏定义。 如果还有其他问题,请随时提问。再次抱歉给你带来困扰!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值