• 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
返回

电子发烧友 电子发烧友

  • 全文搜索
    • 全文搜索
    • 标题搜索
  • 全部时间
    • 全部时间
    • 1小时内
    • 1天内
    • 1周内
    • 1个月内
  • 默认排序
    • 默认排序
    • 按时间排序
  • 全部板块
    • 全部板块
大家还在搜
  • 【瑞萨RA6E2地奇星开发板试用】+ LCD屏显示驱动

    瑞萨RA6E2地奇星开发板是一款最小系统开发板,要为其添加显示功能就需要进行相应的连线,为省去连线的麻烦,可利用其它开发控制板来减弱连线的数量并增强显示的稳定性。 为此,显示屏与开发板的连接关系为: CS---P013 DC---P014 RST---P500 SDI---P207 SCK---P302 所作高低电平输出的语句定义为: #define LCD_CS_CLRR_IOPORT_PinWrite(&IOPORT_CFG_CTRL, BSP_IO_PORT_00_PIN_13, BSP_IO_LEVEL_LOW) #define LCD_CS_SETR_IOPORT_PinWrite(&IOPORT_CFG_CTRL, BSP_IO_PORT_00_PIN_13, BSP_IO_LEVEL_HIGH) #define LCD_DC_CLRR_IOPORT_PinWrite(&IOPORT_CFG_CTRL, BSP_IO_PORT_00_PIN_14, BSP_IO_LEVEL_LOW) #define LCD_DC_SETR_IOPORT_PinWrite(&IOPORT_CFG_CTRL, BSP_IO_PORT_00_PIN_14, BSP_IO_LEVEL_HIGH) #define LCD_RST_CLRR_IOPORT_PinWrite(&IOPORT_CFG_CTRL, BSP_IO_PORT_05_PIN_00, BSP_IO_LEVEL_LOW) #define LCD_RST_SETR_IOPORT_PinWrite(&IOPORT_CFG_CTRL, BSP_IO_PORT_05_PIN_00, BSP_IO_LEVEL_HIGH) #define LCD_SDI_CLRR_IOPORT_PinWrite(&IOPORT_CFG_CTRL, BSP_IO_PORT_02_PIN_07, BSP_IO_LEVEL_LOW) #define LCD_SDI_SETR_IOPORT_PinWrite(&IOPORT_CFG_CTRL, BSP_IO_PORT_02_PIN_07, BSP_IO_LEVEL_HIGH) #define LCD_SCK_CLRR_IOPORT_PinWrite(&IOPORT_CFG_CTRL, BSP_IO_PORT_03_PIN_02, BSP_IO_LEVEL_LOW) #define LCD_SCK_SETR_IOPORT_PinWrite(&IOPORT_CFG_CTRL, BSP_IO_PORT_03_PIN_02, BSP_IO_LEVEL_HIGH) 对该款显示屏的初始化函数为: void Lcd_Init(void) { unsigned int i; Lcd_Reset(); Lcd_WriteIndex(0x11); R_BSP_SoftwareDelay(120, BSP_DELAY_UNITS_MILLISECONDS); Lcd_WriteIndex(0xB1); Lcd_WriteData(0x01); Lcd_WriteData(0x2C); Lcd_WriteData(0x2D); Lcd_WriteIndex(0xB2); Lcd_WriteData(0x01); Lcd_WriteData(0x2C); Lcd_WriteData(0x2D); Lcd_WriteIndex(0xB3); Lcd_WriteData(0x01); Lcd_WriteData(0x2C); Lcd_WriteData(0x2D); Lcd_WriteData(0x01); Lcd_WriteData(0x2C); Lcd_WriteData(0x2D); Lcd_WriteIndex(0xB4); Lcd_WriteData(0x07); Lcd_WriteIndex(0xC0); Lcd_WriteData(0xA2); Lcd_WriteData(0x02); Lcd_WriteData(0x84); Lcd_WriteIndex(0xC1); Lcd_WriteData(0xC5); Lcd_WriteIndex(0xC2); Lcd_WriteData(0x0A); Lcd_WriteData(0x00); Lcd_WriteIndex(0xC3); Lcd_WriteData(0x8A); Lcd_WriteData(0x2A); Lcd_WriteIndex(0xC4); Lcd_WriteData(0x8A); Lcd_WriteData(0xEE); Lcd_WriteIndex(0xC5); Lcd_WriteData(0x0E); Lcd_WriteIndex(0x36); Lcd_WriteData(0xC0); Lcd_WriteIndex(0xe0); Lcd_WriteData(0x0f); Lcd_WriteData(0x1a); Lcd_WriteData(0x0f); Lcd_WriteData(0x18); Lcd_WriteData(0x2f); Lcd_WriteData(0x28); Lcd_WriteData(0x20); Lcd_WriteData(0x22); Lcd_WriteData(0x1f); Lcd_WriteData(0x1b); Lcd_WriteData(0x23); Lcd_WriteData(0x37); Lcd_WriteData(0x00); Lcd_WriteData(0x07); Lcd_WriteData(0x02); Lcd_WriteData(0x10); Lcd_WriteIndex(0xe1); Lcd_WriteData(0x0f); Lcd_WriteData(0x1b); Lcd_WriteData(0x0f); Lcd_WriteData(0x17); Lcd_WriteData(0x33); Lcd_WriteData(0x2c); Lcd_WriteData(0x29); Lcd_WriteData(0x2e); Lcd_WriteData(0x30); Lcd_WriteData(0x30); Lcd_WriteData(0x39); Lcd_WriteData(0x3f); Lcd_WriteData(0x00); Lcd_WriteData(0x07); Lcd_WriteData(0x03); Lcd_WriteData(0x10); Lcd_WriteIndex(0x2a); Lcd_WriteData(0x00); Lcd_WriteData(0x00); Lcd_WriteData(0x00); Lcd_WriteData(0x7f); Lcd_WriteIndex(0x2b); Lcd_WriteData(0x00); Lcd_WriteData(0x00); Lcd_WriteData(0x00); Lcd_WriteData(0x9f); Lcd_WriteIndex(0xF0); Lcd_WriteData(0x01); Lcd_WriteIndex(0xF6); Lcd_WriteData(0x00); Lcd_WriteIndex(0x3A); Lcd_WriteData(0x05); Lcd_WriteIndex(0x29); } 实现数据显示的函数为: void LCD_ShowIntNum(uint16_t x,uint16_t y,uint16_t num,uint8_t len,uint16_t fc,uint16_t bc) { uint8_t t,temp; uint8_t enshow=0; uint8_t sizex=8; for(t=0;t<len;t++) { temp=(num/mypow(10,len-t-1))%10; if(enshow==0&&t<(len-1)) { if(temp==0) { LCD_ShowChar(x+t*sizex,y,\' \',fc,bc) continue; } else enshow=1; } LCD_ShowChar(x+t*sizex,y,temp+48,fc,bc); } } 实现显示效果测试的主程序为: void hal_entry(void) { Lcd_Init(); Lcd_Clear(RED); Gui_DrawFont_GBK16(15,5,BLACK,YELLOW,\"RA6E2 & LCD\"); LCD_ShowChar(10,45,\'V\',YELLOW ,RED); LCD_ShowIntNum(20,45,123,3,WHITE,RED); while(1) { R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_02, BSP_IO_LEVEL_LOW); R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_02, BSP_IO_LEVEL_HIGH); } } 经程序的编译和下载,其测试效果如下: 显示效果图

    2025-12-22 18:20

  • 用KEIL UV3 +JLINK调试程序,外设监视窗口不能反映寄存器真实内容是什么原因?怎么解决?

    我用KEIL UV3 +JLINK调试程序,外设监视窗口不能反映寄存器真实内容,请问什么原因?如何解决?

    2025-12-22 16:44

  • CAN被动错误恢复后为什么rt_device_write还会返回异常呢?

    1、系统启动,给CAN总线发送数据,总线设备通讯正常 2、制造总线错误,当总线设备错误帧达到128之后,总线进入被动错误,总线数据发送失败,rt_device_write函数返回0 3、恢复总线设备,CAN总线错误帧降低到0,rt_device_write仍然返回0,但总线设备通讯正常

    2025-12-22 16:29

  • 笙泉与东芝携手, 打造服务器风扇全新BLDC解决方案 (基于MA853 ASIC)

    笙泉与东芝携手, 打造服务器风扇全新BLDC解决方案 (基于MA853 ASIC) 强强联手,共推MA853专用ASIC — 为高效散热而生 在服务器(Server)、交换机、电源供应器、变频器及太阳能板...等系统中,散热风扇扮演着极为关键的角色,对于系统稳定与效能表现具有深远影响。针对此类热门产品的散热需求,笙泉科技携手东芝电子(Toshiba)共同开发,已正式推出新一代 BLDC ASIC — MA853。此款三相无刷马达控制ASIC,整合智能相位控制技术(InPAC)与闭环速度控制(Closed loop speed control)功能,可大幅提升驱动效率与转速稳定性。 笙泉的服务器散热风扇方案系采用32位ASIC (MA853)作为主控,搭载双核心 Cortex®-M0 与东芝电子(Toshiba)的 MCD 马达控制模块,实现高效率的全弦波驱动控制。MA853内建高效能预驱动器(Gate Driver),可灵活驱动多种外部 N-MOSFET 组件,具备高度整合性与弹性;且支持多点式转速控制,并内建多重保护机制,有效提升风扇运转的稳定性与安全性,满足各类高效散热应用的严苛需求。 InPAC:马达效能优化关键 InPAC 透过智能调整驱动电压与电流的相位,使两者完美同步,实现高效能驱动,进一步释放马达的最大有效功率。这项创新的硬件技术(InPAC)可在马达调校初期自动初始化,藉由自动侦负载变化并实时优化马达参数,大幅减少工程人员的调校工作,有效缩短开发时程,全面提升产品开发效率与稳定性。 智能调校,稳定驱动 传统的有感应马达通常需搭配三个霍尔传感器(Hall Latch)来侦测转子位置;而本方案的MA853 仅需一个霍尔组件(Hall Element)即可完成侦测,大幅简化硬件设计。此外,MA853 在调机阶段无需透过 Keil C修改程序,搭配专属 UI 界面即可轻松完成各项参数设定。该 UI 界面支持缓存器读写、参数设定储存与读取、差异比对等功能,让开发与调校过程更加直觉高效。 透过 UI 界面,用户可设定马达的过压保护与欠压保护,避免马达在高于或低于额定电压的情况下运转,确保系统稳定与安全。针对转速控制,MA853 支持多点 PWM 曲线斜率调整功能,可根据输入 duty 对应转换为输出 duty,实现马达转速的线性化控制,或依需求设定非线性输出。 闭环稳速,散热首选 同时支持闭环速度控制技术,可在动态功率波动和负载变化的情况下,智慧调节并稳定马达转速。此功能对于如服务器风扇等关键应用,或其他对散热稳定性要求极高的场景而言,具备重要价值。 再者,当外部 PWM 输入为 0 时,若马达因外力带动而转动,一般马达控制器仍会输出 FG (Frequency Generator)方波讯号,可能导致上位控制系统误判马达正在运转。笙泉的MA853则具备更智能的设计:仅在 PWM 有输入 duty(且大于 UI 所设定的停止运转门槛值)或 PWM 处于高电位时,才会输出 FG 讯号。因而有效避免误判情况,确保系统侦测的准确性与稳定性。 方案特性 智能相位控制(InPAC)、闭环速度控制技术 ● 双核心Cortex®-M0、MCD马达控制,封装QFN32 (4x4x0.85mm) ● 内建LDO 5V与N/N Gate Driver,可放入25mm圆形中空PCB ● 仅需一件霍尔传感器(Hall element or latch) 有感全弦波控制 ● 电压12V,PWM载波可达93.7KHz,转速可达50,000 rpm ● 透过软件可设置参数,并透过4线式(COM Port)烧写参数 ● 可实行多点式转速控制,更加弹性 ● Open/Close loop控制、过/欠压点保护(可固件/硬件)、过温保护(硬件) 、过流保护(硬件) 应用领域: 服务器冷却风扇、鼓风机、光伏能板/系统的散热风扇、水冷散热....等。 应用方框图: MA853规格表: *另可浏览笙泉科技官网服务器风扇方案 & 相关产品(MA853)页面.

    2025-12-22 16:26

  • 如何快速在MDK下添加CW32芯片进行开发?

    如何快速在MDK下添加CW32芯片进行开发

    2025-12-22 16:23

  • 在Keil中如何调试程序中变量的值变化呢?

    在Keil中,如何调试程序中变量的值变化呢

    2025-12-22 16:16

  • C语言访问某特定内存位置

    嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。 考察点: 这一问题测试你是否知道为了访问一绝对地址把一个整型数强制转换(typecast)为一指针是合法的。 int *ptr; ptr = (int *)0x67a9; *ptr = 0xaa55; ...... *(int *const)(0x67a9) = 0xaa66;

    2025-12-22 15:42

  • 无线遥控开关维修案例

    2025-12-22 15:29

  • CW32F030是32位的MCU为什么不提供32位的定时器?

    CW32F030提供丰富的定时器资源,有1个高级定时器、4个通用定时器和3个基本定时器,虽然定时器是16位的,但各个定时器可以级联使用,可以拼凑成32位或更高位数的定时器使用,非常灵活。

    2025-12-22 15:22

  • SWD调试通信协议

    调试器和目标芯片的 DAP 调试模块通过 SWD 包传输协议进行通信,包传输协议为 2 线同步串行协议,使用SWCLK 时钟信号和 SWDIO 数据信号: SWCLK 为单向时钟信号,由调试器输出给目标芯片 SWDIO 为双向数据信号,由调试器和目标芯片双向分时驱动 协议定义了长度为一个 SWCLK 周期的收发端转换时间,在收发端转换时间内,调试器和目标芯片都不驱动SWDIO,SWDIO 由上拉电阻上拉到高电平。SWDIO 信号线上传输数据时,遵循最低位 LSB 最先传输,最高位 MSB 最后传输原则。

    2025-12-22 14:46