搜索

[方案相关] 【华大测评】华大HC32F460-EVB开发板数据采集和显示试验

[复制链接]
2615|4
 楼主 | 2020-7-7 22:29 | 显示全部楼层 |阅读模式
本帖最后由 yljon 于 2020-7-8 06:07 编辑

试验目标:使用华大HC32F460-EVB开发板采集数据显示数据

一、初识开发板,准备好硬件
       拿到开发板,看上去非常完整的开发板,有接口有按钮有屏幕,带的东东很全,首先印象就非常不错:
1.有两个USB口,貌似可以供电,我要准备USB线即可;
2.再准备一个ST-LINK烧录程序即可。

11111111.jpg

二、搞点资料看看,电路图要搞到
上官网( http://www.hdsc.com.cn/mcu.htm)找些资料看看,结果他们家官网上没有啥资料?
一打听才知道,他们家将资料直接放在FTP上了,资料下载地址: ftp://HdscCustomer:HdscGuest2019!@ftp.hdsc.com.cn/
还别说,这里面资料还真多,

222222.png

电路图在这里,找到了,顺带打印出来,看着方便。试验采集的数据就直接用板载的可调电阻:

33333.jpg

开发板上有屏幕了,直接就在这个小屏幕上显示数据了:

4444444.jpg

从电路图看,这个开发板支持ST-LINK,省心多了,不用额外其它烧录器了。

555555.jpg

三、搭建环境,看看ST-LINK能不能识别
由于我的电脑以前安装了ST-LINK的驱动,插上烧录器看看,在设备管理器看见这样:

66666666.png

打开KEIL,在设置里看见这样,至此驱动安装确认就OK啦。

77777777.png


四、搭建环境,芯片的PACK下载安装
由于我的开发环境是KEIL,下载安装的是HDSC.HC32F46x.1.0.2.pack
在KEIL里看见如下就意味着PACK搞好了。



888888.png

五、搞定代码,点亮屏幕
1.搞亮LED,让LED翻转,显示程序运行,这个直接用它官方的例程即可,代码位置:
HC32F460_SDK\hc32f460-master\hc32f460-master\hc32f460_sdk\驱动库及样例\hc32f46x_ddl\example\gpio\gpio_output\source

2.采集开发板上可调电阻数据,这个就是ADC功能,直接用它官方的例程即可,代码位置:
I:\华大评测\HC32F460_SDK\hc32f460-master\hc32f460-master\hc32f460_sdk\驱动库及样例\hc32f46x_ddl\example\adc\adc_01_sa_base\source

3.小屏幕显示,这个到网上可以找到,我是直接从二姨家下载,唯一比较麻烦的是汉字字库,
我从网上下载一个汉字字模工具,设置好那是刚刚滴:

99999999.png

这个生成的字模就是这样的,


  1. {0x20,0x10,0x08,0xFC,0x03,0x20,0x20,0x10,0x7F,0x88,0x88,0x84,0x82,0xE0,0x00,0x00},
  2. {0x04,0x04,0x04,0x05,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*"华",0*/

  3. {0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00},
  4. {0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00},/*"大",1*/

  5. {0x40,0x40,0x42,0xCC,0x00,0x00,0x12,0x62,0x02,0xFE,0x02,0x42,0x32,0x00,0x00,0x00},
  6. {0x00,0x00,0x00,0x3F,0x10,0x09,0x01,0x01,0x01,0xFF,0x01,0x01,0x01,0x01,0x01,0x00},/*"评",2*/

  7. {0x10,0x60,0x02,0x8C,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0xFF,0x00,0x00},
  8. {0x04,0x04,0x7E,0x01,0x80,0x47,0x30,0x0F,0x10,0x27,0x00,0x47,0x80,0x7F,0x00,0x00},/*"测",3*/
复制代码


接下来就可以编程了,也很简单,就是采集数据,显示数据,代码都在下面了:

  1. <p>int32_t main(void)
  2. {
  3.         int8_t DD[6];
  4.         int8_t nn=0;
  5.         int8_t q=0;
  6.         int8_t b=0;
  7.         int8_t s=0;
  8.         int8_t g=0;
  9.         int16_t ll=0;
  10.         stc_port_init_t stcPortInit;

  11.         MEM_ZERO_STRUCT(stcPortInit);

  12.         stcPortInit.enPinMode = Pin_Mode_Out;
  13.         stcPortInit.enExInt = Enable;
  14.         stcPortInit.enPullUp = Enable;
  15.         PORT_Init(LED0_PORT, LED0_PIN, &stcPortInit);
  16.         SysClkIni();        
  17.         AdcConfig();
  18.         I2C_Master_Config();
  19.         OLED_Init();
  20.         
  21.         fill_picture(0xff);
  22.         Ddl_Delay1ms(300ul);
  23.         OLED_Clear();
  24.         OLED_ShowCHinese(0,0,0);
  25.         OLED_ShowCHinese(16,0,1);
  26.         OLED_ShowCHinese(32,0,2);
  27.         OLED_ShowCHinese(48,0,3);
  28.         OLED_ShowString(64,0,":yljon",16);
  29.         Ddl_Delay1ms(1000ul);
  30.         OLED_ShowCHinese(0,2,4);
  31.         OLED_ShowCHinese(16,2,5);
  32.         OLED_ShowString(32,2,":0000",16);
  33.         
  34.             while(1)
  35.             {
  36.                 nn++;
  37.                 if (nn>4)
  38.                 {
  39.                         LED0_TOGGLE();
  40.                         nn=0;
  41.                 }
  42.                 Ddl_Delay1ms(DLY_MS);
  43.                 ADC_PollingSa(M4_ADC1, m_au16Adc1Value, ADC1_CH_COUNT, TIMEOUT_MS);
  44.                 q=(m_au16Adc1Value[10u]/1000)+0x30;
  45.                 ll=m_au16Adc1Value[10u]%1000;
  46.                 b=(ll/100)+0x30;
  47.                 ll=ll%100;
  48.                 s=(ll/10)+0x30;
  49.                 ll=ll%10;
  50.                 g=ll+0x30;
  51.                 DD[0]=':';
  52.                 DD[1]=q;
  53.                 DD[2]=b;
  54.                 DD[3]=s;
  55.                 DD[4]=g;
  56.                 DD[5]='\0';
  57.                 OLED_ShowString(32,2,DD,16);        
  58.         }</p><p>}
  59. </p>
复制代码


六、来个显示效果,再录制一个视频
将上述代码编译烧录,看看效果,还可以啊,哈哈哈哈
将可调电阻转到最低位,精准的显示0,不错:

10101010.jpg


再将可调电阻转到最高位,精准的显示4095,完全OK:

11-11-111.jpg

录制一段旋转可调电阻的视频,显示效果完美,视频地址如下:


https://www.bilibili.com/video/BV1X5411Y7Pj


七、开发板评价
1. 华大的这个系列的开发板总体制作精良,用心了
2. 代码风格和ST类似,上手也快
3. 外设功能和ST有细微差异,看过手册也都能明白
4. 这块开发板外设非常齐全,开发板的其它功能,待后续慢慢搞
5. 最后,为二姨家举办这样的活动,点赞





使用特权

评论回复
 楼主 | 2020-7-8 13:56 | 显示全部楼层
为何我的主题帖子或者回复经常被审核?神奇的很

使用特权

评论回复
| 2020-7-8 19:52 | 显示全部楼层
厉害

使用特权

评论回复
| 2020-7-8 22:38 | 显示全部楼层

小辣椒,你怎么换网名了呀?

使用特权

评论回复
| 2020-7-9 08:07 | 显示全部楼层
caizhiwei 发表于 2020-7-8 22:38
小辣椒,你怎么换网名了呀?

马甲

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表