gaoyang9992006 发表于 2021-9-23 18:41

瑞萨RA系列单片机FSP框架不一般

先启用RASC创建一个图形化配置的工程,设置按钮P015为输入,并配置上拉电阻


再启用P103和P104为输出模式
然后在entry函数完成以下内容
void hal_entry(void)
{
        bsp_io_level_t button_stat;
        uint32_t DELAY=500;
        /* TODO: add your own code here */
        while(1)
{
        R_IOPORT_PinWrite (&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_LOW);
                R_IOPORT_PinWrite (&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_HIGH);
        R_BSP_SoftwareDelay (DELAY, BSP_DELAY_UNITS_MILLISECONDS);
        R_IOPORT_PinWrite (&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_HIGH);
                R_IOPORT_PinWrite (&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_LOW);
        R_BSP_SoftwareDelay (DELAY, BSP_DELAY_UNITS_MILLISECONDS);
       
        R_IOPORT_PinRead (&g_ioport_ctrl, BSP_IO_PORT_00_PIN_15, &button_stat);
        if(button_stat==BSP_IO_LEVEL_LOW)
        {
                while(button_stat==BSP_IO_LEVEL_LOW){R_IOPORT_PinRead (&g_ioport_ctrl, BSP_IO_PORT_00_PIN_15, &button_stat);}
                DELAY=DELAY/2;
                if(DELAY<=2) DELAY=500;
        }
       
}

#if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
#endif
}我们看,这个PIN读取函数的返回值并非是IO的状态,你需要创建一个变量来存储这个状态,每次执行读取,就将这个状态存储的地址给这个读取函数,它读出来就放到你这个变量里。。。这跟其他厂家的比,感觉有点不习惯啊。

gaoyang9992006 发表于 2021-9-23 18:41

最后奉上这个工程文件





小鱼儿1045 发表于 2021-9-23 19:56

哈哈,习惯就好,我开始用也是感觉很别扭……

xyz549040622 发表于 2021-9-24 14:11

我们平常用的是美系的芯片,这个是日系的芯片,不习惯很正常。

gaoyang9992006 发表于 2021-9-24 16:41

xyz549040622 发表于 2021-9-24 14:11
我们平常用的是美系的芯片,这个是日系的芯片,不习惯很正常。

是的,日本的软件设计的框架跟美帝截然相反。另外国产的(含台系)是另外一种类美系风格,但是更友好。
所以我猜,日本是为了防着美帝,日本有朝一日要干翻美国。。到时候美国鬼子看不懂日本鬼子写的代码。邻国中俄也看不太懂他们的代码,这应该就是他们软件框架设计这么逆天的原因。

xiaosun 发表于 2021-9-27 10:27

我只关心高老板打算卖几毛钱

gaoyang9992006 发表于 2021-9-27 19:31

xiaosun 发表于 2021-9-27 10:27
我只关心高老板打算卖几毛钱

卖啥啊,开发板吗,不卖,我就一个。
页: [1]
查看完整版本: 瑞萨RA系列单片机FSP框架不一般