yljon 发表于 2020-7-7 22:29

【华大测评】华大HC32F460-EVB开发板数据采集和显示试验

本帖最后由 yljon 于 2020-7-8 06:07 编辑

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

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



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



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



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



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



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



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




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





五、搞定代码,点亮屏幕
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.小屏幕显示,这个到网上可以找到,我是直接从二姨家下载,唯一比较麻烦的是汉字字库,
我从网上下载一个汉字字模工具,设置好那是刚刚滴:



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


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

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

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

{0x10,0x60,0x02,0x8C,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0xFF,0x00,0x00},
{0x04,0x04,0x7E,0x01,0x80,0x47,0x30,0x0F,0x10,0x27,0x00,0x47,0x80,0x7F,0x00,0x00},/*"测",3*/

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

<p>int32_t main(void)
{
      int8_t DD;
      int8_t nn=0;
      int8_t q=0;
      int8_t b=0;
      int8_t s=0;
      int8_t g=0;
      int16_t ll=0;
      stc_port_init_t stcPortInit;

      MEM_ZERO_STRUCT(stcPortInit);

      stcPortInit.enPinMode = Pin_Mode_Out;
      stcPortInit.enExInt = Enable;
      stcPortInit.enPullUp = Enable;
      PORT_Init(LED0_PORT, LED0_PIN, &stcPortInit);
      SysClkIni();      
      AdcConfig();
      I2C_Master_Config();
      OLED_Init();
      
      fill_picture(0xff);
      Ddl_Delay1ms(300ul);
      OLED_Clear();
      OLED_ShowCHinese(0,0,0);
      OLED_ShowCHinese(16,0,1);
      OLED_ShowCHinese(32,0,2);
      OLED_ShowCHinese(48,0,3);
      OLED_ShowString(64,0,":yljon",16);
      Ddl_Delay1ms(1000ul);
      OLED_ShowCHinese(0,2,4);
      OLED_ShowCHinese(16,2,5);
      OLED_ShowString(32,2,":0000",16);
      
            while(1)
            {
                nn++;
                if (nn>4)
                {
                        LED0_TOGGLE();
                        nn=0;
                }
                Ddl_Delay1ms(DLY_MS);
                ADC_PollingSa(M4_ADC1, m_au16Adc1Value, ADC1_CH_COUNT, TIMEOUT_MS);
                q=(m_au16Adc1Value/1000)+0x30;
                ll=m_au16Adc1Value%1000;
                b=(ll/100)+0x30;
                ll=ll%100;
                s=(ll/10)+0x30;
                ll=ll%10;
                g=ll+0x30;
                DD=':';
                DD=q;
                DD=b;
                DD=s;
                DD=g;
                DD='\0';
                OLED_ShowString(32,2,DD,16);      
      }</p><p>}
</p>

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




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



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


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


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





yljon 发表于 2020-7-8 13:56

为何我的主题帖子或者回复经常被审核?神奇的很

比神乐 发表于 2020-7-8 19:52

厉害

caizhiwei 发表于 2020-7-8 22:38

比神乐 发表于 2020-7-8 19:52
厉害

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

比神乐 发表于 2020-7-9 08:07

caizhiwei 发表于 2020-7-8 22:38
小辣椒,你怎么换网名了呀?

马甲

starforeye 发表于 2020-12-12 14:38

用SWD是不是只能用一次,第二次被保护

daichaodai 发表于 2020-12-12 14:48

不错,感谢楼主分享。

edyd 发表于 2020-12-20 14:17

不在代码里重新配置SWD,肯定能一直用啊。哪有只能用一次的说法。
页: [1]
查看完整版本: 【华大测评】华大HC32F460-EVB开发板数据采集和显示试验