Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
LED
AB32VG1
试玩AB32VG1 RGB_LED
发布于 2021-09-09 15:04:50 浏览:869
订阅该版
[tocm] ### AB32VG1 RGB LED 试玩 先拉一下仇恨,中奖拿了一块AB32VG1。。。。 这个小蓝板长得还挺帅的,为啥呢?便宜呀,我的天天呢,淘宝4块多一片子,再看一下啥啥啥stm32的,都几十上百了,这个得给他用起来呀。废话还要再说一下,**这个片子的资料,真的是少得可怜,强烈建议厂家把文档都弄一下。**还有那个RISC-V这个玩样不懂呀,还好有RT-Thread studio,把工具链都整好了。 ###** 一、准备工作** 1、安装studio【不废话】 2、安装AB32VG1支持包 3、安装RISC-V工具链 关于网上说要配置啥路径的,经本人亲测,完全没有必要哦,我的装上直接就可以用了。 4、下载软件【用来下程序和调试的】 先吐槽一下,要是没有这个串口,估计会发飚,这个板子不知道仿真,以前就知道jlink连接上管它是swd还是jtag的,连上仿真,棒棒的。这下子好了,完全不会玩了。感觉回到了51单片机的调试年代。 不对,51还可以仿真呢。所以写代码时,可能会出问题的地方,要打印一下,不然都不知道死哪里了呢? ### **二、LED接在哪了呢?** 之前也没有注意,直接从论坛的文章CV下来,搞进行跑一下,发现有问题,色不对呀。一想肯定是脚不对呀,于是看了一下板子,AB32VG1 v2.0,上面标了LED(PE1,PA1,PE4),好家伙,那个PA2是不是V1.0的呀?不管了,直接改掉。 ### **三、RGB三色灯??!** RGB灯,只用了3种色,这也太过分了,至少也要整个2^3=8才行吧? 好像还有个脚是接在PWM上的,这玩样是不是可以花样一下了呢?先不整那花里胡哨的,搞个8的。 这个LED,真是亮得不行,是限流电阻太小了吧?可能是高亮的led?看得眼疼,怎么办呢?在不改电阻的情况下,不点那么长时间不就得了?pwm或时延时少点,加入关断时间。 ### **四、附上哥的垃圾代码** RGB LED包装一下 ```c typedef struct { rt_uint8_t red :1; rt_uint8_t green :1; rt_uint8_t blue :1; rt_uint8_t dat :5; } rt_rgb_status;//用来记录led状态 typedef struct { rt_uint8_t red_pin; rt_uint8_t blue_pin; rt_uint8_t green_pin; union { rt_uint8_t status; rt_rgb_status bitdat; }; } rt_rgb_led;//搞了个结构 包装一下rgb led static rt_rgb_led led = { 0 }; ``` 引脚初始化 ```c void led_init(void) { //AB32VG1_V2.0 led.red_pin = rt_pin_get("PE.1"); led.green_pin = rt_pin_get("PE.4"); led.blue_pin = rt_pin_get("PA.1");//估计v1.0是PA.2 rt_pin_mode(led.red_pin, PIN_MODE_OUTPUT); rt_pin_mode(led.green_pin, PIN_MODE_OUTPUT); rt_pin_mode(led.blue_pin, PIN_MODE_OUTPUT); } ``` LED点灯,高低电平 ```c void rgb_write(rt_uint8_t status) { led.status = status; rt_pin_write(led.red_pin, led.bitdat.red); rt_pin_write(led.green_pin, led.bitdat.green); rt_pin_write(led.blue_pin, led.bitdat.blue); } ``` 循环咋弄呢,太亮了,亮得不行,可能和led的接法有关,v2.0这个是灌电流。那个红色的led也很亮,可以再暗一点。 ```c static void led_thread_entry(void *parameter) { rt_uint8_t t = 0; led_init(); while (1) { t++; rgb_write(t);//有0的脚才是点亮哦 rt_thread_mdelay(50); rgb_write(0xff); //关一下 rt_thread_mdelay(950); } } ``` ### 代码下载 把这个文件加到工程里,删除mian中led的动作,然后编译、下载,shell调试,AB32vG1的GPIO-LED测试通过。有空时,再搞一下那个pwm的led。 这里也说明一下,为什么在代码中添加了删除线程代码,这是因为苦逼呀,不会在shell中添加reboot代码,记得在CM3中可以复位的,这个RISC-V完全不会,所以加入删除,方便测试,更好的应该是加个复位更好。 对呀,好像有个看门狗,可以用它来实现复位,回头再说吧。 【后来看板子,有个复位按钮...OMG,就这样吧】 [rgb_led.c](https://oss-club.rt-thread.org/uploads/20210909/3f04aeb936a592e78bb3ae887e6e4899.c)
5
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
wlof
这个家伙不懒,什么也没写
文章
16
回答
64
被采纳
0
关注TA
发私信
相关文章
1
应用开发如何包含头文件
2
STM32F03RC跑RTT标准版 没有运行
3
为什么 Count 的值不连续和间隔为 7?
4
请求LED.C/H文件
5
RT-thread 如何被当做“单片机”,控制小灯的亮灭?
6
ART-PI Smart User 运行LED 程序崩溃
7
agile led软件包怎么使用
8
AT32F423开发板呼吸灯无作用,只有一个灯亮
9
riscv32-elf-xmaker 工具的目的
10
AB32VG1 的 RTC 内部怎么知道自己是第一次上电的呢?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
10
个答案
3
次被采纳
xiaorui
3
个答案
2
次被采纳
winfeng
2
个答案
2
次被采纳
三世执戟
8
个答案
1
次被采纳
KunYi
8
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
lizimu
2
篇文章
9
次点赞
swet123
1
篇文章
4
次点赞
Days
1
篇文章
4
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部