完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.函数介绍
创建线程函数 xTaskCreate( pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask ) pvTaskCode 函数名句柄 pcName 函数名称 usStackDepth 分配的堆战空间大小 256 pvParameters 线程参数 没有参数传null uxPriority 优先级 越大优先级越高 pxCreatedTask 线程句柄 删除线程函数 线程结束时需要设用这个删除创建的线程 vTaskDelete(xTaskHandle xTaskToDelete) xTaskToDelete 线程句柄 配置gpio信息 用与配置gpio为入输还是输出等 gpio_config(GPIO_ConfigTypeDef *pGPIOConfig) 获取gpio口状态 参数为gpio序号(从0开始) GPIO_INPUT_GET(0); 设置gpio口的状态 参数为gpio号,状态 GPIO_OUTPUT(GPIO_Pin_0, bit ^ 0x0000001 ); 2.创建项目 拷贝SDK中的project_template项目重命名为led_demo,项目中用到了gpio接口,需要引用driver_lib下面的gpio代码. copy SDK/examples/driver_lib/driver/gpio.c led_demo/user/gpio.c copy SDK/examples/driver_lib/include/gpio.h led_demo/include/gpio.h 3.创建线程 程序入口函数 user_init void user_init(void) { printf("SDK version:%sn", system_get_sdk_version()); 创建线程函数 xTaskCreate(led_toggle_task, "led_toggle_task", 256, NULL,1, NULL); } //线程代码 void led_toggle_task(void *pvParameters) { led_init(); for(; ; ){ //死循环 led_toggle(); printf("led toggle n"); vTaskDelay(100); } 线程完成后必需要删除线程。不然会出错。 vTaskDelete(NULL); } 4.初始化GPIO 看到开发板的信息。发现gpio 0 对应的是d3,上拉时点亮led灯,下接熄灭led.接led 正级到d3负级到GND端. void led_init(void){ GPIO_ConfigTypeDef gpio_in_cfg; //Define GPIO Init Structure gpio_in_cfg.GPIO_IntrType = GPIO_PIN_INTR_NEGEDGE; // gpio_in_cfg.GPIO_Mode = GPIO_Mode_Output; //设置gpio口为输出端口 / gpio_in_cfg.GPIO_Pullup = GPIO_PullUp_EN; //设置gpio口上拉有效 gpio_in_cfg.GPIO_Pin = GPIO_Pin_0; // Enable GPIO IO口 gpio_config(&gpio_in_cfg); //Initialization function } 5.反转状态 void led_toggle(void){ uint32_t bit; bit = GPIO_INPUT_GET(0); GPIO_OUTPUT(GPIO_Pin_0, bit ^ 0x0000001 ); } 6.编译代码 上传代码到虚拟机,执行命令 ./gen_misc.sh 编译代码。 7.查看结果 看到led toggle 不停的打印出来,再查看pin0脚上的led灯闪烁。测试成功。 |
|
|
|
只有小组成员才能发言,加入小组>>
3308 浏览 9 评论
2988 浏览 16 评论
3490 浏览 1 评论
9049 浏览 16 评论
4083 浏览 18 评论
1167浏览 3评论
601浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
592浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2329浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1892浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 10:20 , Processed in 1.308616 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号