breeze_i

个性签名:

学习使人进步

  • 2025-01-16
  • 回复了主题帖: 【瓜分2500元红包】票选2024 DigiKey “感知万物,乐享生活”创意大赛人气作品TOP3!

    已投票

  • 回复了主题帖: 为什么Edge浏览器不能播放视频,chrome就可以

    Verifone 发表于 2025-1-15 14:17 这个我也遇到过,不过只有把Edge的一个控件加载一下就可以了 我按照百度说的试了好多次都没用解决

  • 加入了学习《Python零基础从入门到精通全套教程》,观看 Python导学视频

  • 加入了学习《Python零基础从入门到精通全套教程》,观看 第一个Python程序 HelloWorld

  • 加入了学习《python3视频教程》,观看 0101 Welcome

  • 2025-01-15
  • 回复了主题帖: 【回家】你们抢到回老家的票了吗?

    汽车票还没开始卖呢!

  • 回复了主题帖: 你们春节放几天呀?

    今年好像比去年多了一天假期,除夕这天放假了

  • 2025-01-14
  • 回复了主题帖: 【先楫HPM5361】IIC读取无刷直流电机磁编码器位置

    大佬,请问这个电机在哪买的  

  • 回复了主题帖: 新年新挑战,任务打卡赢好礼!

    本帖最后由 breeze_i 于 2025-1-16 16:57 编辑 这就去做 大家最近带好口罩哈 1.资料完善 2、回复3个帖子     3.在Edge浏览器打不开大学堂的视频,折腾了好久,最终决定换个浏览器,还是chrome牛逼。由于最近在看python,就找个python的视频看看,打开一看原来是黑马的,真是无处不在。   4.https://bbs.eeworld.com.cn/thread-1303750-1-1.html得捷和eeworld的投票活动       5.下载一个资源:《c嵌入式编程设计模式》    

  • 2025-01-10
  • 发表了主题帖: 为什么Edge浏览器不能播放视频,chrome就可以

    电源小课堂 | 集成式半桥驱动IC BridgeSwitch 2,助力高效永磁同步电机逆变器的设计 (eeworld.com.cn) 这个活动界面中的视频在edge中打不开,换chrome就好了,为什么? Edge浏览器错误界面如图所示  

  • 回复了主题帖: 【回顾2024,展望2025】新年抢楼活动来啦!

    (1)技术问题:powerPC的架构的芯片如何实现bootloader到APP的跳转?mpc5744的汇编指令在哪找资料? (3)想关注新能源商用车相关技术 (4) (5)Flag:锻炼,早睡

  • 2024-12-26
  • 回复了主题帖: 2025年测评中心,DigiKey得捷赞助继续,欢迎跟帖推你期待的上线的测品啦~

    nxp 的s32k144

  • 2024-12-24
  • 回复了主题帖: 【Follow me第二季第3期】任务提交贴

    本帖最后由 breeze_i 于 2024-12-24 15:22 编辑 完整的请看这里 【Follow me第二季第3期】任务汇总提交贴重写版

  • 2024-12-23
  • 发表了主题帖: 【Follow me第二季第3期】任务汇总提交贴重写版

    本帖最后由 breeze_i 于 2024-12-23 16:02 编辑 一、项目简介         本次实验通过按键选择波形输出,并可以通过ADC模块对DAC电压输出采样,并通过串口打印结果。     实验器材 1.EK-RA6M5开发板1块, 2.Windows电脑一台, 3.CH340串口转换工具一个 4.杜邦线若干,MicroUSB数据线两根 软件: e2 studio FreeMaster, ch340驱动程序, term串口显示工具, Renesas Flash Programmer V3.14(烧录软件)   二、程序流程图 三、各任务具体实现代码 相关经验分享贴 【Follow me第二季第3期】 EK-RA6M5开发板开箱分享 【Follow me第二季第3期】 EK-RA6M5 开发前准备工作 【Follow me第二季第3期】入门任务,_quickstart工程调试 【Follow me第二季第3期】简单按键控制LED实验 【Follow me第二季第3期】基础任务:quad-spi flash和octo-spi flash读写速度测试 【Follow me第二季第3期】DAC配置生成波形及性能测试 【Follow me第二季第3期】进阶任务:示例程序中新增命令打印信息 【Follow me第二季第3期】扩展任务:简单信号发生器 这里主要介绍一下波形产生原理和按键扫描方法1、    三角波产生原理 定义一个全局变量gs_dac_value,开始时,每隔一定时间加一,然后写入到DAC,更新DAC输出,当gs_dac_value=4095时,接下来每隔一段时间减一,直到gs_dac_value==0,为一个周期。如果在10ms任务中加一,然后更新DAC输出,则,三角波的周期为10ms*4096*2=81920ms=81.92s,这个周期是比较长的,所以将DAC输出和LED连接产生的呼吸灯效果不是很明显,实际输出是没有问题的。 fsp_err_t DAC_output(void) {     static int16_t a = 1;     gs_dac_value = (uint16_t) (gs_dac_value + a);     if (gs_dac_value >= 0x0FFF) //    if (gs_dac_value >= 0x5)     {         a = -1;     }     else if (gs_dac_value == 0)     {         a = 1;     }     fsp_err_t status = R_DAC_Write (&g_dac0_ctrl, gs_dac_value);     return status; } 2、    正弦波产生原理 定期调用math.h库函数sin(),根据系统运行时间来计算正弦波输出,周期T=2π,无相位偏移,然后将电压波形向上偏移1V将负电压转化为正电压,再除以2,然后乘以DAC的精度(4096-1),即可输出正弦波。 fsp_err_t DAC_output_Sinewave(void) {     fsp_err_t ret;     uint64_t currenttime = gs_dwTick;     uint64_t t_ms = (currenttime - gs_starttime);       //ms     double t_s = (double) t_ms / 1000;       //(double)(t_ms/1000);     DAC_value = (uint16_t) ((sin (t_s) + 1) / 2 * 4095);     gs_dac_value = DAC_value;     ret = R_DAC_Write (&g_dac0_ctrl, gs_dac_value);     return ret; } 3、    按键扫描原理 要检测按键状态,检测与按键连接的IO口的输入电压即可,但是机械按键会有抖动,电压波动容易误判,所以需要再加上消抖,硬件消抖就是利用RC电路充放电来使得电压变化平滑,消除尖刺,达到消抖目的;软件消抖则是在第一次检测到电平变化之后,等待一段时间,待电压稳定后再次读取电平,如果,检测到按键仍然在按下状态,则说明按键按下了;另一种按键扫描则是,等检测到按键松开了再生成按键按下信号,不松开就会阻塞程序运行。   #include "key.h" uint8_t keyscan(bsp_io_port_pin_t Key) {     uint8_t ret = 0;     bsp_io_level_t keystatus = KEY_RELEASE;     bsp_io_level_t keystatus1 = KEY_RELEASE;     g_ioport.p_api->pinRead (g_ioport.p_ctrl, Key, &keystatus);     if (keystatus == KEY_PRESS)     {         R_BSP_SoftwareDelay (KEY_SCAN_DELAY_MS, BSP_DELAY_UNITS_MILLISECONDS);         ret = g_ioport.p_api->pinRead (g_ioport.p_ctrl, Key, &keystatus1);         if (keystatus == keystatus1)         {             ret = 1;         }         return ret;     }     return ret; } uint8_t Key_Scan(bsp_io_port_pin_t Key) { //阻塞式扫描按键     uint8_t ret = 0;     bsp_io_level_t keystate = KEY_RELEASE;     //bsp_io_level_t keystate1=KEY_RELEASE;     g_ioport.p_api->pinRead (g_ioport.p_ctrl, Key, &keystate);     if (keystate == KEY_PRESS)     {         do         {             g_ioport.p_api->pinRead (g_ioport.p_ctrl, Key, &keystate);         }         while (keystate == KEY_PRESS);         ret = 1;     }     return ret; } 4、    串口 本项目中通过串口打印ADC采样数据,我选用的是串口7,在MyRA6M5Project工程中添加串口模块,并重定义Printf()函数。 在项目属性中可以看到,e2studio使用的工具链是GNU,通过查阅资料,找到printf()重定向代码如下(其实只写一个_write()函数就可以实现printf()函数打印到串口了,但是会有许多warning):   /* 重定向 printf 输出 */ int _isatty(int fd); int _write(int fd, char *pBuffer, int size); //防止编译警告 int _close(int fd); int _lseek(int fd, int ptr, int dir); int _read(int fd, char *ptr, int len); int _fstat(int fd, struct stat *st); int _write(int fd, char *pBuffer, int size) {     (void) fd;     R_SCI_UART_Write (&g_uart7_ctrl, (uint8_t*) pBuffer, (uint32_t) size);     uart7_wait_for_tx ();     return size; } __attribute__((weak)) int _read(int file, char *ptr, int len) {     (void) file;     int DataIdx;     for (DataIdx = 0; DataIdx < len; DataIdx++)     {         R_SCI_UART_Read (&g_uart7_ctrl, (uint8_t*) ptr, 1); //__io_getchar();         ptr++;     }     return len; } __attribute__((weak)) int _isatty(int fd) {     if (fd >= STDIN_FILENO && fd <= STDERR_FILENO)         return 1;     errno = EBADF;     return 0; } __attribute__((weak)) int _close(int fd) {     if (fd >= STDIN_FILENO && fd <= STDERR_FILENO)         return 0;     errno = EBADF;     return -1; } __attribute__((weak)) int _lseek(int fd, int ptr, int dir) {     (void) fd;     (void) ptr;     (void) dir;     errno = EBADF;     return -1; } __attribute__((weak)) int _fstat(int fd, struct stat *st) {     if (fd >= STDIN_FILENO && fd <= STDERR_FILENO)     {         st->st_mode = S_IFCHR;         return 0;     }     errno = EBADF;     return 0; } 然后在项目属性中按如下图所示勾选3个选项   串口重定向完成。   四、视频   五、心得体会     EK-RA6M5这块开发板的MCU是瑞萨设计的基于M33内核的MCU,时钟最高可达200MHz,在m系列内核控制器中属于非常强大的了,而且丰富的外设资源,超多的IO引脚以及各种通信协议的支持让这块开发板可扩展性非常强!借着本次活动,我有幸体验了一下这块板子,强大的的硬件加上e2studio这款优秀的软件,让开发过程非常简单,省去了大量的写底层驱动的时间,这一点对初学者和缺乏时间的电子工程师来说非常棒。 一点小建议:希望e2studio里面可以增加Flash下载按钮(就像NXP的s32ds那样),Renesas Flash Programmer V3.14这个软件下载的速度太慢了,而且每次切换软件也不方便。还有,希望可以选择软件安装位置,C盘空间实在不够用了! 最后,祝eeworld和digikey越来越好!      

  • 上传了资料: 【Follow me第二季第3期】信号发生器工程文件

  • 2024-12-22
  • 回复了主题帖: 【Follow me第二季第3期】扩展任务:一个波形信号发生器

    Juggernaut 发表于 2024-12-22 19:08 mobaxterm   好嘞,感谢大佬

  • 发表了日志: 【Follow me第二季第3期】任务汇总提交贴

  • 加入了学习《FollowMe 第二季:3 - EK_RA6M5 开发板入门》,观看 EK-RA6M5 开发板入门

  • 2024-12-21
  • 回复了主题帖: 【Follow me第二季第3期】扩展任务:一个波形信号发生器

    大佬,请问视频中用到的串口工具叫什么名字?  

  • 2024-12-17
  • 发表了日志: 【Follow me第二季第3期】DAC配置生成波形及性能测试(二)使用ADC采样DAC模块输出...

最近访客

< 1/2 >

统计信息

已有25人来访过

  • 芯积分:86
  • 好友:--
  • 主题:13
  • 回复:26

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言