本帖最后由 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[6];
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[10u]/1000)+0x30;
ll=m_au16Adc1Value[10u]%1000;
b=(ll/100)+0x30;
ll=ll%100;
s=(ll/10)+0x30;
ll=ll%10;
g=ll+0x30;
DD[0]=':';
DD[1]=q;
DD[2]=b;
DD[3]=s;
DD[4]=g;
DD[5]='\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. 最后,为二姨家举办这样的活动,点赞
|
共1人点赞
|