本帖最后由 jinglixixi 于 2017-5-16 10:21 编辑
开发板终于到了,中途还经历了一个愚人节。快递中心通知说快件派发错了,当天无法送了,转天一定第一个给你送,就先替你签收了。没办法只有等了,转天眼看上午已经过去了,只得与他们联系,这次换了一个人,说现在没人中午送。等吧,直到太阳落山才把开发板盼到。 虽说板子到的迟了些,但也不乏好处,眼见高手们已把他们的成果分享出来了,有以全面见长的测评,也有技术先行的USB FS测评。有了这些,测评的基本面就已经齐全了,后面只需依葫芦画瓢就是了,下面SHOW一下开箱照,如图1所示。 图1 L496开发板
相对于前期的144PIN的开发板,这块开发板还是出现一些变化的。首先它是重新制版的一款板子,无需使用的焊盘均被清除了,其次是将网口预留的缺口给补齐了,恐怕这种版式又会延续使用一段时期的,其对比效果如图2所示。 图2 开发板对比
至于上电效果,还是同144PIN的开发板相同均为,触动蓝色的用户键来切换LED的位置及闪烁频率,其效果如图3所示。 图3 上电效果
由于手头已有一块L432的板子,它与L496可称是一个系列的,故可进行一下对比,其外观对比如图4所示,而相关的配置对比如表1所示。
表1 对比表
图4 同系列对比
可见在设计一些功能相对简单的产品时,用L432能在体型上更小巧、更便携,而L496则更适于功能全面的复杂应用,这使得它们可以各显其能、各展优势。 由于二者在主频方面是一致的,因此在引脚同样存在的情况下,要对外设进行扩展,对同一器件来讲,其移植工作量就可大大缩减。以使用OLED屏为例,由于已在L432上实现了显示功能,故要想把它移植到L496上就显的轻而易举。首先可以选取一个GPIO例程,然后将L432上的OLED屏显示程序复制到GPIO例程中加以编译和下载即可,由于L496开发板带有Arduino接口,所以只需把OLED屏插到开发板上就可以了,所得到的显示效果如图5所示(使用原心率检测仪的程序代码)。 图5 L496的OLED屏显示效果
由此也可以取得一种面向系列MCU进行功能扩展的方法,即对于某种外围器件当在主频相同的同一系列芯片中,基本上能够直接移植使用;而对于主频不同的系列芯片,则要主要频率和时序的调整。当然,对于时序要求不高的外设也基本可以直接移植使用。这样在面对层出不穷的新产品时,就能持续有效地延续外围器件的生命力。 借鉴网友对USB FS的经验,本人的测试效果如图6所示。 图6 USB FS测试
通过测试结果和程序分析可知该检测是循环执行的,由于测试生成的文件名未发生改变,所以是覆盖后的一个反复读写过程。 为了便于观察和去除反复的检测,可在Run_Fatfs_Test()的函数中添加一个while(1)的循环语句以保证只检测一次,随后便终止检测处理。修改的函数内容如下: - void Run_Fatfs_Test(void)
- {
- if(Appli_state==APPLICATION_READY)
- {
- /*open or create file for writing*/
- printf("Do File Operations Test(Create/Write/Read.)\r\n");
- f_mount( &fatfs,(TCHAR const*)USBH_Path ,0);
- if(f_open(&PBFile,FileName,FA_CREATE_ALWAYS | FA_WRITE)!=FR_OK){
- printf("Error create %s\r\n",FileName);
- while(1);
- }else {printf("create %s success\r\n",FileName);HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_7);}
- /*write data into flashdisk*/
- printf("Writing Content: %s\r\n", FatfsBuff);
-
- if(f_write(&PBFile,FatfsBuff,strlen(FatfsBuff),&ret)!=FR_OK){
- printf("Error write %s\r\n",FileName);
- while(1);
- }else {printf("write %s success\r\n",FileName);HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_7);}
- f_close(&PBFile);
- /*open file for reading*/
- if(f_open(&PBFile,FileName,FA_READ)!=FR_OK){
- printf("Error open %s\r\n",FileName);
- while(1);
- }else {printf("open %s success\r\n",FileName);}
- /*red data from flash*/
- if(f_read(&PBFile,ReadBuff,100,&ret)!=FR_OK){
- printf("Error read %s\r\n",FileName);
- while(1);
- }else {printf("read %s success\r\n",FileName);HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_14);}
- printf("Read %s content:",FileName);
- printf("%s\r\n", ReadBuff);
- f_close(&PBFile);
- printf("Nucleo L496ZG USB FS OTG FATFS Test Success\r\n");
- }
- while(1);
- }
复制代码 修改后的检测效果如图7所示,检测所生成的文件如图8所示。 图7 修改后的测试
图8 生成的测试文件
该USB FS检测不但对于SD卡有效,对U盘也依然有效,其检测方式如图9和图10所示。 图9 以SD卡测试
图10 以U盘测试
|