完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
1. 套件概述
2.特性:
3.相关链接 RA生态社区论坛:https://ramcu.cn 资料链接: https://www.ramcu.cn/index.php/lists/21.html bilibili链接:https://space.bilibili.com/642126046gitee链接:https://gitee.com/ramcu 公众号:RA生态工作室 其他学习资料 [野火]瑞萨RA系列FSP库开发实战指南:https://doc.embedfire.com/mcu/renesas/fsp_ra/zh/latest/index.html[百问网]《ARM嵌入式系统中面向对象的模块编程方法》:选择P402、P401为OLED显示屏I2C接口的SCL与SDA引脚,选择P110、P109作为UART串口引脚,选择P0000作为ADC输入通道测量光照传感器的模拟电压;新建工程选择R7FA4E2B93CFM作为平台芯片,再进行IO和UART设置,设置UART工作方式和中断函数名: 设置uart引脚: 设置OLED使用的I2C引脚功能: 接下来移植代码并调试UART数据传输,然后修改 hal_entry.c文件中关键代码: #include "hal_data.h" #include<stdio.h> #include "oled.h" FSP_CPP_HEADER void R_BSP_WarmStart(bsp_warm_start_event_t event); FSP_CPP_FOOTER fsp_err_t err = FSP_SUCCESS; volatile bool uart_send_complete_flag = false; uint8_t RxBuff[1]; //进入中断接收数据的数组 uint8_t DataBuff[5000]; //保存接收到的数据的数组 char hollow[10]="hollow"; int RxLine=0; //接收到的数据长度 int Rx_flag=0; //接受到数据标志 int Rx_flag_finish=0; //接受完成或者时间溢出 void user_uart_callback (uart_callback_args_t * p_args) //串口中断回调函数 {if(p_args->event == UART_EVENT_TX_COMPLETE) { uart_send_complete_flag = true; } } #ifdef __GNUC__ //串口重定向
#else
#endif PUTCHAR_PROTOTYPE {
} int _write(int fd,char *pBuffer,int size) {
} 要使用printf函数还要进行设置,要在编译设置中完成如下配置,右键项目进入属性界面,选择 C/C++ 构建 - 设置 - GNU Arm Cross C Linker - Miscellaneous,勾选 printf 、scanf 以及syscalls 选项;再将OLED对应代码加入到项目工程中,再修改oled.h中的代码: #define OLED_SCL_Set() R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_02, BSP_IO_LEVEL_HIGH) #define OLED_SCL_Clr() R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_02, BSP_IO_LEVEL_LOW) #define OLED_SDA_Clr() R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_01, BSP_IO_LEVEL_LOW) #define OLED_SDA_Set() R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_01, BSP_IO_LEVEL_HIGH) 在主函数中调用OLED显示函数: void hal_entry(void) {
while(1) { OLED_Refresh(); R_BSP_SoftwareDelay (500, BSP_DELAY_UNITS_MILLISECONDS); OLED_Clear(); OLED_ShowChinese(0,0,0,16,1);//中 OLED_ShowChinese(18,0,1,16,1);//景 OLED_ShowChinese(36,0,2,16,1);//园 OLED_ShowChinese(54,0,3,16,1);//电 OLED_ShowChinese(72,0,4,16,1);//子 OLED_ShowChinese(90,0,5,16,1);//技 OLED_ShowChinese(108,0,6,16,1);//术 OLED_ShowString(8,16,"ZHONGJINGYUAN",16,1); OLED_ShowString(20,32,"2014/05/01",16,1);
#if BSP_TZ_SECURE_BUILD
#endif } 设置ADC转换模块: 还要设置中断回调函数名和ADC对应引脚: uint16_t adc_data0=0; float a0,a5; volatile bool scan_complete_flag = false; void adc_callback (adc_callback_args_t * p_args)//回调函数 {
} 打开ADC模块: fsp_err_t err = FSP_SUCCESS;
/* Enable channels. */
在while中调用ADC转换: (void) R_ADC_ScanStart(&g_adc0_ctrl);
然后调用OLED显示数值函数和uart发送函数将结果送出显示: OLED_ShowNum(20,32,adc_data0,8,16,1); printf("hollow world \n"); printf("ADC result=%d",adc_data0); 当然还要根据出现error进行逐个修改,这里不再赘述,最后给出调试结果: OLED显示和接线如图: |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
785 浏览 0 评论
【瑞萨RA6E2】 配置Keil开发环境+使用按键控制LED+串口/调试器烧录程序
525 浏览 0 评论
1087 浏览 0 评论
【瑞萨RA6E2】驱动 WS2812 实现 RGB 跑马灯效果
1008 浏览 0 评论
776 浏览 0 评论
2581浏览 6评论
【RA-Eco-RA0E1-32PIN-V1.0开发板试用】RA0E1-32PIN-V1.0开发板测试一下点灯
3266浏览 3评论
3719浏览 2评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】使用Jlink RTT完成printf打印功能
1472浏览 2评论
【RA-Eco-RA0E1-32PIN-V1.0开发板试用】配置开发环境和编写一个点灯程序
2378浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 21:00 , Processed in 0.538281 second(s), Total 35, Slave 29 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3227