【华大测评2】HC32F460_EVB运行RT-Thread4.0.1(Shell+OLED+流水灯)
本帖最后由 nich20xx 于 2020-10-28 08:33 编辑1 前言华大半导体HC32F460是国产的MCU,是一款基于32bit Cortex-M4F内核 、集成FPU、MPU及支持SIMD指令DSP的高性能微控制器HC32F460PETB。最大主频168MHz,512K FLASH,192K SRAM,具有非常丰富的片上资源,支持2个独立12-bit 2.5MSPS ADC,DAC、1个PGA、3个高速比较器CMP,众多的通信接口有I2C、I2S、SPI、USART、SDIO、QSPI、CAN、USB2.0 FS,支持AES/HASH/TRNG数据加密功能RT-Thread 是国产的RTOS,是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。RT-Thread 具备一个 IoT OS 平台所需的所有关键组件,例如GUI、网络协议栈、安全传输、低功耗组件等等。两个国产软硬件平台强强联合,是未来产品开发的一个非常好的组合。2 HC32F460_EVB BSP华大半导体有大神已经移植好了适配RT-Thread与HC32F460_EVB的BSP。
[*]下载 https://github.com/SourceWolf/HC32F460_RT_Thread/tree/master/rt_thread
[*]HC32F460_RT_Thread-master\rt_thread\bsp\hc32f46x\drivers
[*]该BSP当前支持片内硬件USART、硬件I2C
[*]可以通过ENV工具选择实际使用的芯片外设
3 RT-Thread应用示例( Shell+OLED+流水灯 )2.1 Shell串口RT-Thread Shell串口使用USART3
2.2 OLED0.91英寸的OLED(128*32) 使用I2C2。
OLED 128x32 软件驱动直接使用RT-Thread中的软件包u8g2。 打开rt-thread ENV工具,在menuconfig中,选择“RT-Thread online packages--->peripheral libraries and drivers---> U8G2: a monochrome graphic library”
[*]u8g2_port.c屏蔽所有rt_pin_mode操作(当前不支持pin)
[*]增加如下OLED测试示例
static void ssd1306_12832_hw_i2c_example(int argc,char *argv[])
{
u8g2_t u8g2;
// Initialization
u8g2_Setup_ssd1306_i2c_128x32_univision_f( &u8g2, U8G2_R0, u8x8_byte_rt_hw_i2c, u8x8_rt_gpio_and_delay);
u8g2_InitDisplay(&u8g2);
u8g2_SetPowerSave(&u8g2, 0);
/* full buffer example, setup procedure ends in _f */
u8g2_ClearBuffer(&u8g2);
u8g2_SetFont(&u8g2, u8g2_font_ncenB08_tr);
u8g2_DrawStr(&u8g2, 1, 18, "U8g2 on HC32F460_EVB");
u8g2_SendBuffer(&u8g2);
}
MSH_CMD_EXPORT(ssd1306_12832_hw_i2c_example, i2c ssd1306 sample);2.2 流水灯
/* LED0~3 toggle definition */
#defineLED0_TOGGLE() PORT_Toggle(LED0_PORT, LED0_PIN)
#defineLED1_TOGGLE() PORT_Toggle(LED1_PORT, LED1_PIN)
#defineLED2_TOGGLE() PORT_Toggle(LED2_PORT, LED2_PIN)
#defineLED3_TOGGLE() PORT_Toggle(LED3_PORT, LED3_PIN)
int32_t main(void)
{
//......
while(1)
{
LED0_TOGGLE();
rt_thread_delay(DELAY_MS);
LED1_TOGGLE();
rt_thread_delay(DELAY_MS);
LED2_TOGGLE();
rt_thread_delay(DELAY_MS);
LED3_TOGGLE();
rt_thread_delay(DELAY_MS);
};
}2.3 运行结果
[*]串口打印如下信息
[*]LED流水灯
shell命令窗口,输入ssd1306_12832_hw_i2c_example,OLED显示“u8g2 on HC32F460_EVB”4 参考
[*]HC32F460 RT-Thread BSP https://github.com/SourceWolf/HC32F460_RT_Thread/tree/master/rt_thread
[*]华大MCU官网 https://www.hdsc.com.cn/
[*]RT-Thread官网 https://www.rt-thread.org/
谢谢楼主分享 HC32F460的板子看起配置很齐全啊 u8g2_Setup_ssd1306_i2c_128x32_univision_f( &u8g2, U8G2_R0, u8x8_byte_rt_hw_i2c, u8x8_rt_gpio_and_delay);
u8g2_InitDisplay(&u8g2);
u8g2_SetPowerSave(&u8g2, 0); 当前不支持pin 哪里能搞到这个板子?
RTX3080 发表于 2020-11-20 10:12
哪里能搞到这个板子?
联系我们,我们专业做开发板 "xyxchiip.taobao.com" 华大半导体适配RT-Thread与HC32F460_EVB的BSP Shell是什么意思呢?串口的指令交互吗、。
页:
[1]