admin 管理员组

文章数量: 887621


2024年2月19日发(作者:霹雳布袋戏在线观看2020)

瑞萨单片机入门教程

本教程以R7F0C002L单片机为例

一、 开发环境下载安装与工程

注意:该工程目录和工程名不能含有中文

1.1、 CubeSuite+环境的下载:官网下载地址

/products/tools/ide/ide_cubesuite_plus/

将安装环境下载到本地,该文件大小532M

在安装过程中有提示需要填写注册码,请输入以下注册码,如果无效请联系供应商。

查看是否已经注册:在IDE环境中选择 Help->About后有下面窗口:

注册码:67DCS-V3Q7L-XMGL9-FI6L9-EE1BJ

该注册码有限制台数的,一旦注册了就会把MAC绑定,重装无需注册!

当有以下报错时:请查看是否已经注册。

1.2、 按照一般的软件安装方法安装好IDE环境,下面介绍IDE环境的配置:

1、 将DIF_RFP文件夹下的Device_Custom文件夹拷贝到安装目录下的C:Program FilesRenesas ElectronicsCubeSuite+下(这里是默认的安装目录,另外注意:DIF_RFP中Readme_Device_说将Device-_Custom文件夹拷贝到C:Program FilesRenesas

ElectronicsCubeSuite+Device下,但是实际上不可以!)。

安装根目录

DIF_RFP文件夹

当配置成功以后会在芯片族里面多出R7F系列的单片机,如下图示:

2、 将DIF_RFP文件夹下的RFP_R7F0C002L_V10000子目录下面的两个文件(Device_Custom文件夹和Custom_文件)拷贝到安装目录下的C:Program FilesRenesas ElectronicsProgramming ToolsRenesas

Flash Programmer V2.01Device下(这里是默认安装路径)。

1.3、 开发环境新建工程:

1、 启动CubeSuite+环境,会弹出如下启动界面:

2、 创建Project工程,在上述启动界面中,点击Creat New Project栏中GO按钮,将会弹出以下对话框:

选择芯片型号

选择芯片族

输入工程名

选择工程路径

创建

3、 点击Create创建工程,会得到如下工程界面:

4、 通过生成工具生成一个简单的代码:

5、 将芯片型号换成R7F0C002单片机,并且将选项字节配置好!详细设置请参考第三章

代码生成与编码 。

6、 将系统生成的代码全部删除,添加自己的工程代码!

删除Code Generator文件夹

选择RL78 EZ Emulator工具

添加自己的代码!

这里需要注意:必须要把文件和pfdl_sample_linker_链接文件添加到工程里面。

7、 该单片机也可以按照传统的方式直接新建工程并添加代码,但是不建议这样使用,在新建工程后需要添加一个比较麻烦的链接文件,而且容易出错!这里就不介绍了。

二、 仿真器安装与设置

2.1、安装驱动与更新固件:

驱动安装按照一般方法即可,路径如下图示:

点击确定即可,正确安装完成后在设备管理器端口中可以看到Renesas Virtual UART端口,否则安装失败!

2.2、在D:XXXEZ_CUBEEZ_QBEZUTL & firmware路径下有固件烧录软件打开之后将RL78_OCD_文件烧录到下载其中,界面如下:

,点击打开后,点击Start开始烧录即可。

2.3、在仿真器背面有5个拨动开关设置:

序号

1

2

3

4

位1

M1

Debug Mode

T

位2

M2

Stand Mode

5

说明

内部/外部时钟

仿真/独立模式运行

建议配置

M2

Debug Mode

5 Other R8C

T:目标板供电,电压范围实际情况定,+2.7V~+5.5V

仿真器不能5:仿真器提供5V电源 提供3V电源

Other

2.4、仿真器与目标板的连接:

EZ-CUBE:

目标板:

按照上图一一对应即可。

2.5、CubeSuite+仿真设置:配置仿真工具Debug Tool

按上图选择可以实现硬件仿真。

三、 代码生成与编码

3.1、代码生成工具初配置

3.1.1驱动代码自动生成:选择Tool->Plug-in Seting,会弹出以下对话框:

勾选红色框内内容,并点击OK,软件会提醒需要重启软件,点击Yes即可重启。

3.1.2、重启后界面项目树上会多出以下几个内容:

3.1.3、代码生成准备工作:

代码生成是必须是选择R5F10RLC型号的单片机,将需要的底层驱动代码生成以后,再将MCU型号改回R7F0C002L型号单片机。

选择Change Microcontroller…项即可更换MCU型号。

3.2、Clock系统时钟配置

选择Generator Clock项,然后选择Pin assignment选项卡

这是一些复用功能重定向控制,此处保持默认状态。

再选择Clock Setting选项卡

电源范围选择

选择主时钟源类型

选择X1振荡电路

外部晶振频率

其他内容保持默认状态即可。

最后选择Pin assignment选项卡并点击fix settings按钮修改设置。

3.3、GPIO端口配置方法

选择Port项,按照实际需求配置好端口的输入输出状态,这里将P41-P43配置为输即可生成代码。 出状态。完成后点击

在项目树中可以看出,生成了三个文件:

打开r_cg_port.c文件,文件中有一个端口初始化功能函数void R_PORT_Create(void)

在硬件初始化函数hdwinit中将会调用这个函数初始化硬件Port端口。

在main函数中会发现并没有调用hdwinit硬件初始化函数,这个是由于代码生成工具自动会将hdwinit硬件初始化函数加载到汇编代码中,C代码中不需要做处理。

3.4、Timer定时器配置方法

选择Timer项,然后选择General Setting选项卡

将Channel0即定时器0配置成Interval Timer(间隔计时器)。

选择Channel0选项卡,按照以下配置,完成后点击Generate Code生成代码。

定时时长

定时器中断模式

中断优先级

同样会自动生成r_cg_timer.c、r_cg_timer.h、r_cg_timer_user.c三个文件,打开r_cg_timer.c文件,会发现有三个函数:void R_TAU0_Create(void):定时器初始化函数;void

R_TAU0_Channel0_Start(void):定时器0启动函数;void R_TAU0_Channel0_Stop(void):定时器停止函数。

在系统自动初始化函数中会自动添加R_TAU0_Create初始化函数,不需要在main函数里面再操作初始化,但是timer0初始化后并没有启动,因此需要在main函数里面添加启动函数,

注意:所有用户添加的代码必须写在有类似的提示之间,否则在重新生成代码时会被系统自动清除掉或者改掉。

打开r_cg_timer_user.c文件,在中断服务函数__interrupt static void

r_tau0_channel0_interrupt(void)加入定时器中断需要处理的代码。

3.5、SPI(CSI)串口配置:

选择serial项,再选择Channel选项卡,并按照下图设置

选择CSI00选项卡,并按照下图设置

按照前面同样的步骤,在main主函数中添加R_CSI00_Start函数,启动SPI功能。

在需要发送数据的情况下调用R_CSI00_Send_Receive数据交换函数即可。

3.6、ADC转换器配置:

选择A/D Converter项,将A/D Converter Operations Setting项选择Used,再按照下图配置。

8位模式

内部基准

ADC通道

ADC中断优先级

点击Generator Code生产代码,同样会生成r_cg_adc.c、r_cg_adc.h驱动文件r_cg_adc_user.c用户文件,在r_cg_adc.c文件中包含ADC的初始化函数和启动函数。在main主函数中的系统初始化文件中添加启动函数,如下示

在r_cg_adc_user.c用户文件中,中断服务函数中读取ADC转换结果

3.7、LCD端口配置:

选择设置

LCD Controller Driver项,将LCD Operations Setting项选择Used,然后按照下图液晶波形选择

LCD时间片选择

LCD偏压设置

同样点击Generator Code生成代码,系统会自动生成三个文件(哪三个文件这里不赘述了),在main主函数中的系统初始化函数中调用R_LCD_Start启动LCD,调用R_LCD_Set_VoltageOn函数开启LCD偏压电路。

代码生成工具只生成了LCD的初始化函数和上述两个启动函数,其中SEG脚配置之类的并没有生成,因此需要自己添加,这里不做详细说明。

3.8、WatchDog定时器配置:

选择WatchDog Timer项,并按照下图配置:

休眠模式WatchDog运行选择

在配置低功耗的时候需要注意看门狗的设置,需要将运行选择位配置为Stopped模式即低功耗状态禁止看门狗运行。

看门狗的配置有部分体现在选项字节中,寄存器配置部分体现在代码中这里不作详细介绍,主要介绍选通过项字节将看门狗设置为休眠禁止运行状态:

双击Build Tool会弹出property页,选择其中Link Options选项卡,选择Device内容,如下示:

看门狗配置字

其中User options byte value值就是用户选项字节设置内容。在RL78_L12用户手册硬件篇.pdf

第25章选择字节中有有介绍这三个字节意义,最前字节FE是用于配置看门狗。

选项字节格式

设定值

选项字节地址

描述

FE

000C0H

看门狗设置

FF

000C1H

中断& 复位模式设置

EA

000C2H

内部时钟频率配置

将WDSTBYON位配置成0就可以将看门狗配置为休眠模式下禁止运行状态。

3.9、低功耗休眠配置:

R7F0C002单片机低功耗有三种模式:HALT模式、STOP模式、SNOOZE模式;HALT模式只有CPU时钟停止运行,其他外围时钟还在运行;STOP模式会是整个系统停止运行可以大幅度降低功耗;具体模式特点请参考RL78_L12用户手册硬件篇.pdf文档。

在进入STOP模式之前必须将外部时钟切换到内部高速时钟,并且需要将看门狗关闭,否则看门狗会将系统从STOP模式唤醒,关闭看门狗的方法参考3.8章,在此不再赘述。

在休眠状态,将PER0配置为0x00,禁止所有外部设备时钟,否则会多出250uA左

右的电流!

3.10、外部中断配置:

外部中断分为通常意义的外部引脚中断和按键中断。

3.10.1、INTP外部中断

选择项,按照下图配置,生成代码。

在main主函数中添加R_INTC0_Start启动函数即可,在r_cg_intc_user.c中的中断服务函数__interrupt static void r_intc0_interrupt(void)添加用户代码即可。

3.10.2、KeyINT按键中断

按图配置,并生产代码:

在main主函数中添加启动函数R_KEY_Start即可启动KeyInt中断。

注意:在中断服务程序中需要清除KRF键返回标志寄存器,否则只能触发一次中断,如

下示:

清除键返回标志

3.11、片内EEPROM(DataFlash)

R7F0C002单片机自身不带EEPROM功能,但是可以通过数据闪存实现EEPROM数据保存的功能。

1、 需要将一下几个文件添加到工程目录下:

其中:pfdl.h、、、pfdl_sample_linker_、pfdl_types.h五个文件是厂家代码,这五个文件也可以通过E:xxx瑞萨002入门教程RENESAS_FDL_RL78_T04E_V1.00工具生产,以上代码就是通过这个工具生产的,r_pfdl.c文件是供应商那边工程师自己写的代码,经过修改后可以实现数据保存的功能。

2、接口函数:通过R_FDL_ExecuteRead函数可以读取指定地址内容,通过R_FDL_ExecuteWrite函数可以将指定内容写过到指定地址。注意:在写入数据之前必须要调用R_FDL_ClearDataFlash函数将整个地址数据全部清除掉再写入数据。

出现以下找不到库函数的报错时:

请将库函数Lib文件添加到工程中,如下图示:

将文件添加到工程中

3.12、乘法运算

这里把R7F0C002单片机的乘法运算单独列出来,希望能引起读者注意单片机乘法运算的时候符号类型转换。

以这个函数为例,ExamN是用来决定ExamValue值的存放地址,实际EEPROM的地址

Addr=0x0100+(ExamN*8)。

这里需要注意的时候如果按照下面写法会引起地址出错:

这里会引起错误

EE_WriteBytes((ulong)(0x0100+(ExamN*8)),8,Buf1)这样写EEPROM的地址会出错,在ExamN>32时ExamN*8的值会出错,是因为ExamN为uchar型数据,其值不能超过0xff,所以必须要先将ExamN的数据类型转换成ulong型(ExamN*8<0xffffffff时)或者是uint型(ExamN*8<0xffff时)。

按照以下写法才是正确的:

有关乘除法运算,请按照这种方式写

作者:Owen

20140114


本文标签: 函数 配置 需要 代码