感谢RT-Thread和Renesas给我这次评测的机会,我测评的部分是ADC和GPIO。
1、新建开发板工程
2、在fsp中设置相关参数
在pins中选择ADC0,关闭其他不需要的功能
选择通道四即可
在pins中选中P105并配置为外部中断模式
在stacks中点击New stacks并选择Analog,选择第一个或者第二个都可以,看需求
点击刚才创建的r_adc进行参数配置,选择通道四,因为通道四和开发板上的电位计相连接
点击generate project content
3、点击RT_Thread Setting配置相关参数
开启ADC
选择ADC0
保存设置
5、硬件模块
使用了LED3,按键,电位计。使LED闪烁,按键用中断触发,使用ADC0的第四通道采集电位器的电压。
6、程序编写
按自己喜欢的方式修改main函数
如下图所示
新建test_adc.c、test_adc.h、test_gpio.c、test_gpio.h
编写test_adc.c内容
1#include
2#include
3
4#define ADC_NAME "adc0" /* ADC 设 备 名 称 */
5#define ADC_CHANNEL 4 /* ADC 通 道 */
6#define REFER_VOLTAGE 330 /* 参 考 电 压 3.3V,数 据 精 度 乘 以100保 留2位 小 数
7*/
8#define CONVERT_BITS (1 << 12) /* 转 换 位 数 为12位 */
9static int adc_sample(int argc, char *argv[])
10{
11rt_adc_device_t adc_dev;
12rt_uint32_t value, vol;
13rt_err_t ret = RT_EOK;
14/* 查 找 设 备 */
15adc_dev = (rt_adc_device_t)rt_device_find(ADC_NAME);
16if (adc_dev == RT_NULL)
17{
18rt_kprintf("adc sample run failed! can't find %s device!\n", ADC_NAME);
19return RT_ERROR;
20}
21/* 使 能 设 备 */
22ret = rt_adc_enable(adc_dev, ADC_CHANNEL);
23/* 读 取 采 样 值 */
24value = rt_adc_read(adc_dev, ADC_CHANNEL);
25
26rt_kprintf("the value is :%d \n", value);
27/* 转 换 为 对 应 电 压 值 */
28vol = value * REFER_VOLTAGE / CONVERT_BITS;
29rt_kprintf("the voltage is :%d.%02d \n", vol / 100, vol % 100);
30/* 关 闭 通 道 */
31ret = rt_adc_disable(adc_dev, ADC_CHANNEL);
32return ret;
33}
34/* 导 出 到 msh 命 令 列 表 中 */
35MSH_CMD_EXPORT(adc_sample, adc voltage convert sample);
编写test_gpio.c内容
1#include
2#include "hal_data.h"
3#include
4
5#define USER_INPUT "P105"
6
7void gpio_test(void *args)
8{
9 rt_kprintf("key pushed \r\n");
10
11}
12
13void gpio_sample(void)
14{
15
16 rt_uint32_t pin = rt_pin_get(USER_INPUT);
17 rt_kprintf(" pin number : 0x%04X \r\n", pin);
18 rt_err_t err = rt_pin_attach_irq(pin, PIN_IRQ_MODE_LOW_LEVEL, gpio_test, RT_NULL);
19 if(RT_EOK != err)
20 {
21 rt_kprintf(" attach irq failed. \r\n");
22 }
23 err = rt_pin_irq_enable(pin, PIN_IRQ_ENABLE);
24 if(RT_EOK != err)
25 {
26 rt_kprintf("enable irq failed. \r\n");
27 }
28}
29MSH_CMD_EXPORT(gpio_sample, gpio sample);
7.测试
在终端中输入adc_sample
万用表测试如下
8.视频
9.代码
https://github.com/18785275440/RA6M4.git
10.心得体会
才拿到开发板快递时感觉重重的,心想里面除了开发板还装了啥呢,拿到寝室迫不及待的打开,快递没有一点破损,包装很到位,里面夹了两本入门手册。一本是评估板快速入门,还有一本是RA MCU的基础知识。感觉很贴心,接下来就是这款开发板,拿着很大气,元器件布局很有美感。开发板的资源也很丰富,新建工程的时候,观察里面的文件命名结构,刚开始有点蒙,感觉一个ADC接口进行了多次封装,这样不是很不利于开发者开发嘛,但是后面读了入门手册后改变了我的想法,这样做是为了进行硬件分离,开发者不用关心底层结构。还有就是FSP很好用,可能刚开始不熟悉里面的结构,但是通过网上查找资料、手册熟悉后就觉得很方便,减少开发时间。接下来就是RT_Thread操作系统,很好用。刚开始学操作系统就是拿这个入门,学习的时候容易看懂。驱动比较完善。在我不怎么了解这款开发板的情况下完成任务。并不是我的能力有多大,而是RTT写得太好。
希望在以后RT-Thread与瑞萨越做越强。
直播预告:
3月31号,将举行瑞萨特约直播活动,马上进群看直播吧!
如群已满,请加小师弟微信:rtthread2020,拉你进群
关注我们
可加微信号 13632716562 报名师资培训!
↓点击阅读原文进入官网
爱我就请给我在看