北方

  • 2019-06-11
  • 回复了主题帖: 【奖品已全部寄出,请注意查收】TouchGFX活动颁奖

    确认接受邮箱 yaof@chec.com.cn 谢谢  

  • 2019-06-10
  • 发表了主题帖: 精简手机系统设计

    精简手机系统设计 1、概述 精简手机系统设计是基于8051单片机和安可信A9G数据通讯模块开放的精简手机。 2、实现的功能 能够实现精简通讯和实时位置追踪功能。   3、实现的逻辑和原理 3.1 采用CH549和安可信A9G数据通讯模块 3.2 同时提供三维运动传感器的连接接口   4、小结 通过实现本设计,可以实现一个便携手机的功能。 此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 回复了主题帖: 【物品已全部寄出,请注意查收】沁恒送福利,评估板诚芯送

    个人信息正确!

  • 2019-05-20
  • 发表了主题帖: 【 Linux Touch召集令】你若让出市场,为什么我不去抢地盘?

    本帖最后由 北方 于 2019-5-21 12:00 编辑 你若让出市场,为什么我不去抢地盘? 1. 概述     做一个自己的操作系统,一直是maker的大梦,现在给你机会了,你来不来?     前面的Ubuntu Touch在魅族上跑了一下就关了,因为安卓的地位太稳固了,即使搞出来也赢不了。     现在做一个自己的Linux Touch怎么样?把华为P系列玩坏怎么样?其实,钥匙就在大家的手中。     现在,开始在本坛子里征集自由的Linux Touch开发者,一起开发一个自由的不受限制的移动终端操作系统。     打算加入的,可以在下面跟帖。 2. 设计逻辑。2.1 安卓手机本身基于linux,但是在内存管理和释放上,做得不好。但是,因为积累和沉淀了巨大的APP应用程序,用户迁移难度大,也不愿意迁移。    其实,基于Linux的程序开发,现在的门槛已经降得很低了。如果用QT creator的话,菜鸟级的程序员用8个小时从零开始就能做一个类似wordpad的应用。如果用javascripte和electron的话,也是很容易搞得。更何况,对于数据控来说,直接用python和R开发是一个很开森的选择。 2.2 Linux Touch的硬件框架是基于核心MCU+DSP+GPU(对于ARM是mali),外设访问sensor,RF射频器件等等。所以,会玩树莓派就能搞手机。 2.3 Linux Touch驱动,基本上是这样的首先从rom加载uboot,然后用u-boot加载zImage等linux内核,最后用zImage加载操作系统。使用Debian或者Ubuntu都可以很好的完成这个工作。 2.4 如果,不够熟悉内核。那么,就准备好操作系统原型出来以后,开发自己的application,自己的墨迹天气,自己的记事本。 3. 开发计划 3.1 首先选定硬件开发平台,或者众创开发一个原型板。 3.2 移植embedded Debian到这个硬件平台上。 3.3 完善image,增加touch驱动、GUI驱动,Camera驱动,RF驱动,Sensor驱动,编写驱动接口并分享。 4. 然后是大家一起玩坏手机的时候。每人都有一个自己的Linux Touch。 此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 2019-05-16
  • 发表了主题帖: 【 STM32WB55 测评】7# STM32WB开发板ADC的使用和配置

    本帖最后由 北方 于 2019-5-16 11:32 编辑 1. ADC的使用和配置STM32WB55标称ADC的精度达到16位,这个是一个专用ADC芯片所能达到的标准。不过,再其文档中,只是提到能达到12位的精度。因此这里面还是有些差异的,应该是用其他方法达到的16位。 总共的19个通道,其中有3个事内部使用的,分别的hi温度,电池电压,和参考电压,对应于不同的地址。 ADC还有一个有意思的watchdog功能,可以实现ADC超过范围时的闭锁功能。低功耗ADC是STM32的传统,这里仍然保留。 2. 主要特性 - 12,10,8,6bit的设置精度, - 转换时间,0.234us --12bit,或者0.297us--12bit,更低的精度如10位可以达到0.203us。 - 数据自我矫正,这个就减少了一个需要calibration的功能。 - oversampler,这个可以取样16位,但是应该是硬件仍然12位 具体结构参考下图, 具体时钟逻辑图, 3. 例程分析 3.1 连接开发板的arduino-A2接口,对应ADC_CHANNEL_6,这样可以显示其中连接在A2的电压变化 3.2 核心代码如下, int main(void) {   uint32_t tmp_index_adc_converted_data = 0;   HAL_Init();   SystemClock_Config();   MX_TIM2_Init();   for (tmp_index_adc_converted_data = 0; tmp_index_adc_converted_data < ADC_CONVERTED_DATA_BUFFER_SIZE; tmp_index_adc_converted_data++)   {     aADCxConvertedData[tmp_index_adc_converted_data] = VAR_CONVERTED_DATA_INIT_VALUE;   }      BSP_LED_Init(LED2);      Configure_ADC();      /* Run the ADC calibration in single-ended mode */   if (HAL_ADCEx_Calibration_Start(&AdcHandle, ADC_SINGLE_ENDED) != HAL_OK)   {     /* Calibration Error */     Error_Handler();   }   if (HAL_TIM_Base_Start(&htim2) != HAL_OK)   {     /* Counter enable error */     Error_Handler();   }      /* Start ADC group regular conversion with DMA */   if (HAL_ADC_Start_DMA(&AdcHandle,                         (uint32_t *)aADCxConvertedData,                         ADC_CONVERTED_DATA_BUFFER_SIZE                        ) != HAL_OK)   {     /* ADC conversion start error */     Error_Handler();   }        while (1)   { } } 复制代码 3.3 代码简析 首先,初始化硬件,设定系统时钟和外设设定,   HAL_Init(); SystemClock_Config(); MX_TIM2_Init(); 然后设置ADC   Configure_ADC(); 最后就是启动DMA状态下的ADC, HAL_ADCEx_Calibration_Start(&AdcHandle, ADC_SINGLE_ENDED); HAL_TIM_Base_Start(&htim2); HAL_ADC_Start_DMA(&AdcHandle, (uint32_t *)aADCxConvertedData, ADC_CONVERTED_DATA_BUFFER_SIZE); 3.4 ADC 的设置 对应ADC的设置,是在config中确定的,如下代码,这个设定了用户手册中需要设定的时钟,精度,通道,矫正方式等,虽然内容很多,但是,注解和使用很直观, AdcHandle.Init.ClockPrescaler        = ADC_CLOCK_SYNC_PCLK_DIV2;   AdcHandle.Init.Resolution            = ADC_RESOLUTION_12B;   AdcHandle.Init.DataAlign             = ADC_DATAALIGN_RIGHT;   AdcHandle.Init.ScanConvMode          = ADC_SCAN_DISABLE;              /* Sequencer disabled (ADC conversion on only 1 channel: channel set on rank 1) */   AdcHandle.Init.EOCSelection          = ADC_EOC_SINGLE_CONV;   AdcHandle.Init.LowPowerAutoWait      = DISABLE;   AdcHandle.Init.ContinuousConvMode    = ENABLE;                        /* Continuous mode to have maximum conversion speed (no delay between conversions) */   AdcHandle.Init.NbrOfConversion       = 1;                             /* Parameter discarded because sequencer is disabled */   AdcHandle.Init.DiscontinuousConvMode = DISABLE;                       /* Parameter discarded because sequencer is disabled */   AdcHandle.Init.NbrOfDiscConversion   = 1;                             /* Parameter discarded because sequencer is disabled */   AdcHandle.Init.ExternalTrigConv      = ADC_SOFTWARE_START;            /* Software start to trig the 1st conversion manually, without external event */   AdcHandle.Init.ExternalTrigConvEdge  = ADC_EXTERNALTRIGCONVEDGE_NONE; /* Parameter discarded because trig of conversion by software start (no external event) */   AdcHandle.Init.DMAContinuousRequests = ENABLE;                        /* ADC with DMA transfer: continuous requests to DMA to match with DMA configured in circular mode */   AdcHandle.Init.Overrun               = ADC_OVR_DATA_OVERWRITTEN;   AdcHandle.Init.OversamplingMode      = DISABLE;   if (HAL_ADC_Init(&AdcHandle) != HAL_OK)   {     /* ADC initialization error */     Error_Handler();   }         /*## Configuration of ADC hierarchical scope: ##############################*/   /*## ADC group injected and channels mapped on group injected ##############*/      /* Note: ADC group injected not used and not configured in this example.    */   /*       Refer to other ADC examples using this feature.                    */   /* Note: Call of the functions below are commented because they are         */   /*       useless in this example:                                           */   /*       setting corresponding to default configuration from reset state.   */         /*## Configuration of ADC hierarchical scope: ##############################*/   /*## channels mapped on group regular         ##############################*/      /* Configuration of channel on ADCx regular group on sequencer rank 1 */   /* Note: On this STM32 serie, ADC group regular sequencer is                */   /*       fully configurable: sequencer length and each rank                 */   /*       affectation to a channel are configurable.                         */   /* Note: Considering IT occurring after each ADC conversion                 */   /*       (IT by ADC group regular end of unitary conversion),               */   /*       select sampling time and ADC clock with sufficient                 */   /*       duration to not create an overhead situation in IRQHandler.        */   sConfig.Channel      = ADCx_CHANNELa;               /* ADC channel selection */   sConfig.Rank         = ADC_REGULAR_RANK_1;          /* ADC group regular rank in which is mapped the selected ADC channel */   sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5;  /* ADC channel sampling time */   sConfig.SingleDiff   = ADC_SINGLE_ENDED;            /* ADC channel differential mode */   sConfig.OffsetNumber = ADC_OFFSET_NONE;             /* ADC channel affected to offset number */   sConfig.Offset       = 0;                           /* Parameter discarded because offset correction is disabled */   复制代码 此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 2019-05-15
  • 发表了主题帖: 【 STM32WB55 测评】6# STM32WB开发板UART的使用

    1. 再开发板的使用过程中UART是需要首先调试和测试的,因为多数情况下,开发板的数据反馈和调试,最简便的方法就是使用串口把需要的状态数据回传到计算机。2.这里首先使用的例程就是UART_printf。这个串口需要访问的是st-link的虚拟串口。直接连接电脑并编译运行就可以了。这个过程中,需要注意的是,参数设置比较不通俗,如下:115200-7-1-odd-None   - Hyperterminal configuration:     - Data Length = 7 Bits     - One Stop Bit     - Odd parity     - BaudRate = 115200 baud     - Flow control: None 这个可以理解为区分与通用的UART传输,显示在串口工具的数据就是, 核心代码如下, int main(void) {   HAL_Init();   SystemClock_Config(); PIO_Init();   MX_USART1_UART_Init();   /* USER CODE BEGIN 2 */   /* Initialize BSP Led for LED3 */   BSP_LED_Init(LED3);   /* Output a message on Hyperterminal using printf function */   printf("\n\r UART Printf Example: retarget the C library printf function to the UART\n\r");   printf("** Test finished successfully. ** \n\r");         int temp=1000;   while (1)   {     /* USER CODE END WHILE */                 HAL_Delay(temp);                 printf("*Current tick is ** %d\n\r",temp);     /* USER CODE BEGIN 3 */   } } 复制代码 3. 进行修改,增加一个定时语句,隔1000ms输出一组,结果如下, 4. 调试成功。 此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 2019-05-13
  • 发表了主题帖: 5# STM32WB开发板蓝牙例程浅析

    本帖最后由 北方 于 2019-5-13 12:49 编辑 1. ST的SDK提供了比较丰富的例程,不过双核使用的例程还没补充,应该在后面升级版补充,现在是1.0版本。2. 跳过电灯,直接从蓝牙例程开始测试。 蓝牙心率测量使用的是ble低功耗蓝牙,先下载手机app ST BLE Profile application on the android device         https://play.google.com/store/ap ... hlevalidation&hl=en     https://itunes.apple.com/fr/App/st-ble-profile/id1081331769?mt=8 然后编译例程,并下载到板卡,就可以了。 这个例程使用的是CM4内核,写入的地址如下图,正如内存分布图所示。 3. 主要的程序如下, int main(void) {   /* USER CODE BEGIN 1 */   /* USER CODE END 1 */   /* MCU Configuration--------------------------------------------------------*/   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */   HAL_Init();   /* USER CODE BEGIN Init */   Reset_Device();   Config_HSE();   /* USER CODE END Init */   /* Configure the system clock */   SystemClock_Config();   /* USER CODE BEGIN SysInit */   PeriphClock_Config();   Init_Exti(); /**< Configure the system Power Mode */   /* USER CODE END SysInit */   /* Initialize all configured peripherals */   MX_GPIO_Init();   MX_DMA_Init();   MX_RF_Init();   MX_RTC_Init();   /* USER CODE BEGIN 2 */   /* USER CODE END 2 */   APPE_Init();   /* Infinite loop */   /* USER CODE BEGIN WHILE */         while(1)         {                 SCH_Run(~0);     /* USER CODE END WHILE */     /* USER CODE BEGIN 3 */   }   /* USER CODE END 3 */ }复制代码 4.  范例解析4.1 程序启动,依次启动硬件库HAL_init(),系统时钟,中断设置,外设GPIO,DMA,RTC等常规设置,其中射频是主要的部分,在 MX_RF_Init()完成。 4.2 具体和程序有关的在App目录下的app_ble.c,dis_app.c,hrs_app.c。这3个程序就是定义了HeatRate的蓝牙service和对应的参数以及执行特征的程序。 4.3 整个程序是基于RTOS的,这些应用都在scheduler中定义并使用。 4.4 对应于程序编写,需要比较清除蓝牙原理,让rtos的时序和逻辑,然后的代码就相当简单了。后面的详细内容在后面主观分析。 此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 2019-05-10
  • 发表了主题帖: 【 STM32WB55 测评】4# STM32WB开发板STM32CubeWB的使用

    STM32WB开发板STM32CubeWB的使用 1.  STM32WB开发板STM32CubeWB是开发的套件,可以可以理解为一套开发标准库及使用的SDK。当然,如果愿意从底层开发,没有问题,不过就是要自己搞清楚底层的reg访问和设置。 总体来说,stm的开发,比较难理解的就是一个简单的命令要很多语句,如ADC的使用,其实是要从时钟选择,中断使能,通道,adc参数设定等诸多过程。对应于底层,就是简单给若干地址访问和设置位置。 使用这个SDK,可以减少查阅手册的精力,也避免出错,但是其实记忆和学习工作量更大了,完全不懂手册也是不可能的。 2. 这个里面还包括了很多第三方的库,如 - CMSIS-RTOS implementation with FreeRTOS™ -  Full USB Device stack - STMTouch, touch sensing library solution - STM32_WPAN,支持 Bluetooth® Low Energy (BLE) 5.0, 802.15.4OpenThread certified stacks and 802-15-4 MAC layer. - FAT file system based on open source FatFS solution 如下图, 可以看到,代码驱动和LL底层代码是可以都支撑HAL的。 对应本开发板套件支持的芯片型号为, 在文件夹中的组织如下, 3. 具体使用就比较简单了,进入对应的example文件夹,选择工程文件,打开就可以,然后编译。作为大厂,都是可以简单通过编译并的 3.1 开发可使用HAL的模式,创建工程后,需要添加需要的中间件midleware 首先需要定义firmware元件,要复制并修改xxx_conf_template.h文件, 然后启动HAL_Init(),设定系统时钟,初始化外围设备, 最后才能开始开发自己的项目。 3.2 也可以从LL层开始开发,一般是推荐移植现有的范例程序, 然后重点修改,stm32wbxx_it.h,stm32wbxx_it.c,以及main.c程序。 4. 如何写入无线协处理库 该库位于 Projects\STM32WB_Copro_Wireless_Binaries 需要安装和启动STM32CubeProgrammer,这个是CLI的命令行模式程序。 然后设定boot loader模式,设定BOOT0在Vdd,在nucleo上市连接CN7.5和CN7.7,用USB_user和J2供电,不用st-link,对doggle直接连接usb口,主要SW2切换到BOOT0的位置 以下是执行过程, 删除现有无线栈, STM32_Programmer_CLI.exe -c port=usb1 -fwdelete 写入无线栈, STM32_Programmer_CLI.exe -c port=usb1 -fwupgrade Wireless_Coprocessor_Binary] [Install address] firstinstall=1 对应不同的栈需要选择对应的写入地址,参见Release_Notes.html 此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处 写栈成功后,要切换到正常的模式,不能在boot loader模式运行程序。 5.一些问题。 使用HAL和LL编程的区别是,一个更抽象,一个更又效率,但是对于用户手册和硬件要足够理解。而且可以同时使用,仅仅注意初始化的设置要准确。LL比HAL覆盖更多的API,如SCB和Sys Tick就只在LL中存在。

  • 2019-05-09
  • 发表了主题帖: 【 STM32WB55 测评】3# STM32WB开发板的boot顺序和radio模块

    本帖最后由 北方 于 2019-5-9 14:52 编辑 1. STM32WB开发板的boot顺序需要从组织结构的角度来分析。明显,这个比GD32要复杂得多。2. 首先是这么多信息源,如何交互,这里是用了matrix来组织的。NXP LPC54114使用了不同的组织结构。 内存分配时4G地址,8段,每段512M。 3. 启动顺序由下面的引脚定义, 分别从主存,系统内存和SRAM中启动,启动访问别名地址都是0x080000,但是物理地址分别是0x000000, 0x1FFF000,0x200000. 这个也是,可以把firmware写在不同内存区域需要了解的。用keil是可以选择写入内存起始地址的,这样就可以更好运用编程工具。 CPU1,可以从用户选择的地址启动,同时st出厂时也设定了嵌入式boot loader,可以通过USART和I2C,SPI进行flash 写入。 CPU2,启动需要在CPU1设定C2BOOT为之后才能启动。 4. Flash的写入 Flash可以用ICP或者IAP的方式写入,这里就存在很大的访问失败可能性,多核系统,建议用semaphores的方式写入,避免这样的冲突。 这意味着如果,变砖不要紧,只要知道代码的起始位置就可以重置flash。 程序写入分为标准写入和快速写入两种方式, 5. 关于radio的无线部分,说明文件很少,只是说明是由cpu2来控制底层代码的,通过多核的mailbox消息系统实现。这样,也比单核的更精简,用户可以专心在cpu1上编写应用程序,从逻辑上,很像用一个MCU来控制的蓝牙模块SoC。这个也是一个简便的射频实现方式。 此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 回复了主题帖: 【STM32WB55 测评】+USBDongle变砖记

    wb的库提供了doggle的源码,可以自己定制和编译,应该可以写入的,不用急。我正在研究,也试一下写入自定义的bin,看是成功还是变砖。

  • 2019-05-08
  • 发表了主题帖: 【 STM32WB55 测评】2# STM32WB开发板的使用

    本帖最后由 北方 于 2019-5-8 15:51 编辑 1. STM32WB支持蓝牙5.0和802.15.4双协议栈,这次套件包括两部分,一个nucleo作为server,另一个doggle作为client。 2. nucleo板及其资源如下, 3. 另一个doggle的资源如下, 4. 出厂配置的范例就是一个作为广播的server,另一个作为client的群工作方式,可以互相控制绿色LED的亮灭。 4.1 首先给nucleo板通过st-link的usb口加电,led开始闪烁。这时就自动进入server模式,开始广播信号。 4.2 然后直接通过usb-A给doggle加电,进入client模式,按下SW1,进入server时自动连接模式。 4.3 建立连接后,led的闪烁频率都发生变化, 4.4 在nucleo板上按SW1可以控制client的led亮灭,同时控制SW2可以控制连接的间隔。 5. 快速进入开发状态,当然是直接登陆mbed网络,可以快速开始开发的。不过应该还没有蓝牙的配置,应该只是对应于M0内核的模式,不适合比较全面的开发。 6. 便于开发,提供了参考范例程序STM32CubeWB Firmware Examples for STM32WBxx Series ,并提供了参考的内核架构, 后续可以围绕这个开始项目开发。 此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 2019-05-05
  • 回复了主题帖: 免费送:Aim TTi电流测量探头、专业信号发生器,还有京东卡等小礼品等你来

    这个是要求两个一起评测还是只评测其中的一个

  • 2019-04-30
  • 发表了主题帖: 【 STM32WB55 测评】1# STM32WB无线系列MCU简述

    1. STM32WB无线系列MCU简述     好像今年是ST的大年,连续发布了很多新品。不是在原有基础上升级,而是直接概念上的提高,比如发布了可以直接快速生成CNN模型移植的AI SDK,这次是集成无线射频芯片。此前,ST在射频上好像是比较薄弱的,推出的蓝牙芯片也是只能作为从芯片工作,这次推出了强大的SoC,而且是双核的。    简单介绍下,STM32WB系支持无线功能的双核 MCU,内嵌 工作频率为 64 MHz 的 Arm® Cortex®-M4 内核和工作频率为 32 MHz 的 Arm® Cortex®-M0+ 内核。STM32WB 平台是在STM32L4系列 MCU 的基础上发展而来。它提供同样的数字与模拟外设,适合需要更长电池使用寿命和复杂功能的应用。    STM32WB 除了富有多种通信特性外,还有一个实用的无晶体 USB2.0 FS 接口、音频支持、一个 LCD 驱动器、多达 72 个 GPIO、一个用于功耗优化的集成 SMPS 以及旨在最大限度延长电池使用寿命的多种低功耗模式。这款 MCU 还特别注重安全功能,例如 256 位 AES、PCROP、JTAG 熔丝、PKA(椭圆曲线加密引擎)和根安全服务 (RSS)。RSS 支持OTA验证 通信,不受无线协议栈或应用限制。获得 了STM32WB55 Bluetooth 5 认证的设备提供 Mesh 1.0 软件支持和多种配置文件,并且可灵活集成专有 BLE 协议栈。同时提供OpenThread 认证的软件协议栈。无线技术可同时运行 BLE/OpenThread 协议。内嵌通用 MAC 允许使用 IEEE 802.15.4 专有协议栈(如 ZigBee®)或其它专有协议,从而为将设备连接到物联网 (IoT) 提供更多选择。 2. STM32WB系列的架构    先上个图。 板子还是nucleo板子,不过同时配套了一个dongle。这样配对起来直接使用,而不必用两个nucleotide开发板了。 本地化也做得很好,直接上了天猫 https://detail.tmall.com/item.htm?spm=a1z10.5-b-s.w4011-19008516737.19.32ae683cp0nQgN&id=590010024118&rn=da33d0ede0e945a86e503f3d8feaf2df&abbucket=7 在其他公司订样片还要等等不同,上了天猫就有可能隔日达。就凭这一点,就比亚马逊要强不少,比较接地气。 等拿到手了继续分享。 此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 2019-04-29
  • 回复了主题帖: 【名单公布】ST 双核无线 MCU STM32WB55 开发板

    确认信息正确!

  • 2019-04-10
  • 回复了主题帖: 【奖品发送完毕】:开拓IoT社会 尼吉康的新蓄电装置 颁奖啦~

    个人信息正确   换成E金币 谢谢

  • 2019-04-08
  • 发表了主题帖: TouchGFX 设计”+电池状态在线监测

    1、 TouchGFXDesigner简介    GFX作为一个再MCU上跑得很high的库,可以再各种版本的KEIL上见到,通常的开发流程是创建一个工程project,然后根据硬件逐个添加库,gfx库再keil中是需要license才能够使用的。但是,GFX被st装到口袋里了。然后呢,就有了这个免费的TouchGFXDesigner。    TouchGFXDesigner更像是MVC开发的网页工具,有了frontpage网站设计基础就可以不看手册直接上手。设计的用户界面可以用分钟来计算。这个项目就是这样的。    但是,基于嵌入式开发,代码的连接再TouchGFXDesigner里面有两种方式,第一种是再UI设计完成后用生成代码按键,一键生产,然后导出后在keil,gcc,iar等环境继续开发。    但是还有一个更快的,在interaction选项下有插入function的选项,可以直接把代码嵌入到这个项目中。    不过,更好用的部分是simulator,用模拟器可以直接形成代码的动态部分。编译执行的过程稍慢,不过确实很好玩,如果编写小游戏,更是方便。    2、 电池状态在线监测项目介绍2.1 电池状态在线监测项目实现的效果,这个界面包括初始页面splash,状态显示页面Status,设置页面Settings,介绍页面About。    这个项目可以接受来自ADC接口或者通讯接口的数据显示实时状态,这个项目的数据接口用演示数据表示。具体实现的流程:-         项目启动,显示起始页面的图像,同时等待整个项目的加载和初始化。-         完成初始化后,就直接进入主页面。主页面包括文字显示的电池电压,电池电流和电池运行温度,环境温度的动态显示。-         为了正确显示出设定的参数,需要对设定的单位和时间段进行设定,这些都表现在设定页面。-         最后的关于页面,说明了需要的信息,这介绍了touchGFX的说明。2.2 应用平台:在开发的创建工程时,可选的都是stm32的discover等典型开发板,这个项目使用simulator开发,从blank UI开始设计,没有套用典型的范例和demo;2.3 应用场景:工业用数据监控面板显示。2.4 设计的特点:用户界面简洁,使用方便。设计中使用了STM32  LOGO,不过需要注意的时文件名需要改成短文件名,否则要报错的。3、设计中使用到container和Scroll list,界面的设计更丰富。3.1 首先创建一个自定义容器,然后在其中添加元素,这里时图片和文本,其中文本中的是在代码中访问和更新的数据3.2 这样就可以在创建的页面中添加这个元素,这里用滚动表格scroll list添加3个元素,3.3 其他的文件均按此逐个编辑,就形成了一个如下简单的逻辑执行框架。4、对应的工程文件和简单操作展示视频如下。4.1 视频用simulator,显示用gif截屏后的效果如下,4.2 上传的代码如所附附件 5. 后续工作。在这个简单界面上,完成代码的注入和修改,实现数据更新的功能。在完成基本逻辑后,就可以进一步优化页面设计,选择颜色,图片和更丰富的用户交互。

  • 2019-03-28
  • 回复了主题帖: 讨论:RF 的未来

    5G应该在终端上有应用,在工业上应该还不会那么快。在用户VR等需要大数据的行业会有比较大的变化。 另外,最近st新出的STM32WB无线系列MCU,这个有机会给大家介绍一下,如果能评测一下更好啦。 用蓝牙5.0的比较热门。这个是一个全新的系列,应该后续产品线比较长的,现在能否申请样片的。

  • 2019-03-26
  • 回复了主题帖: 你也会这样设计脉冲负载的电源吗?有问题的网友进鸭~

    “正确选择大容量储能电容的容值”这一部分中,关于峰值功率和功率平均设计的方法非常值得关注,其中提到的计算方法是基本概念,那么vicor是否有推荐的参考算法和具体考量因素。最好能够重点讲解一下,对应的推荐产品或者模块最好也一起介绍一下。

  • 2019-03-19
  • 回复了主题帖: 开学季,新课上线!学习TI 培训最新课程赢好礼

    LP50 LED驱动器效果展示 学习学习。

  • 回复了主题帖: 开学季,新课上线!学习TI 培训最新课程赢好礼

    高压隔离技术如何工作 - 冲击测试 比较实用的课程。

最近访客

< 1/5 >

统计信息

已有107人来访过

  • 芯币:342
  • 好友:1
  • 主题:70
  • 回复:74
  • 课时:--
  • 资源:--

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言