STM32
文章平均质量分 59
SeniorZ
这个作者很懒,什么都没留下…
展开
-
16位数据在8位FLASH中的写入和读取
背景:数据采集时的数据位uint16_t类型的数据,需要将其写入8位flash,以及从8位flash中还原。 一个16位数据,如 uint16_t temp = 0x1234,在8位flash中会在相邻的两个地址中按顺序保存,被拆分为0x12和0x34(注意大小端),如何将这个16位数据直接写入8位flash?有两种方法,一种是把数据声明为联合体,另一种是指针操作。关于联合体...原创 2020-04-30 16:17:14 · 2472 阅读 · 0 评论 -
KeiL 调试时保存watchwindow的参数变量到文件
背景:定义了一个数组,程序执行后维数组赋值,数组元素的值可在watchwindow显示,但无法直接保存到文件假定程序中定义的数组为uint32_t char testarray[100];解决方法:1.进入debug状态,完成数组赋值2.暂停debug3.在µVision function editor中创建函数:(µVision function editor的打开方...原创 2020-02-27 14:59:41 · 7430 阅读 · 9 评论 -
使用Keil RTE完成基于STM32F407-DISC1开发板的LED闪烁
1.新建工程2.选择STM32F407VGTx芯片3.在RTE中选择组件如果出现依赖问题,点击下方的Resolve按钮解决,如还有问题,对照信息手动选择。4.在Project管理器中添加main.c/h,stm32f4xx_it.c/h文件此时左侧列表文件如下5.在Options->C/C++的Define中添加HSE_VALUE=8000000...原创 2019-11-09 19:09:06 · 1621 阅读 · 0 评论 -
Keil代码语句(ifelse while for等)补全快捷键
语句模板,比如if else, for, while这些基本语句的模板先输入前面几个字母,然后按下Ctrl+Shift+空格即可补全参考资料:http://www.keil.com/support/man/docs/uv4/uv4_ui_templatestab.htm...原创 2019-11-05 16:22:37 · 4156 阅读 · 0 评论 -
正点原子delay函数移植到rt thread操作系统(HAL库)
正点原子教程中涉及到的操作系统只涉及了UCOS的教程,其中例程的system文件夹中的delay.c函数只是适配了UCOS。下面将delay.c函数移植到rt thread中,使用的bsp是rt thread stm32中的stm32f407-st-discovery开发板已修改好的delay.c函数(适配HAL库)#include "delay.h"#define SYST...原创 2019-10-29 21:56:02 · 2093 阅读 · 1 评论 -
STM32F4中的有关SysTick和延时函数的理解(HAL库)
说到单片机的延时函数,对于很多人来说并不陌生,在F4Cube Hal库中不就是HAL_Delay()函数而已么,但是实际上,简单的HAL_Delay函数的实现原理,并不是那么容易看明白。HAL库中SystemCoreClock的变化过程如下表所示(最终的值取决于在CubeMX中的时钟树配置中的系统时钟SYSCLK)函数【所在文件】 SystemCoreClock SystemIn...原创 2019-10-28 21:48:20 · 5492 阅读 · 0 评论 -
STM32F4DISCOVERY和STM32F407G-DISC1的差异
最近新购入了ST官方的F4探索者开发板用于调试,在官网上发现这个板子有两个版本,前一个版本叫STM32F4DISCOVERY,后一个版本叫STM32F407G-DISC1。官网提到板子的Demo例程可以从HAL库的Cube开发包(HAL库为目前ST主推的库)和以前的标准固件库的STSWSTM32068包(ST已经不再对这种标准固件库进行维护和更新了)。STM32F407G-DISC1最新的...原创 2019-10-25 20:46:34 · 2425 阅读 · 0 评论 -
嵌入式Linux开发相关概念总结
嵌入式Linux 移植要点:1.搭建交叉编译环境2.bootloader的选择与移植(uboot)3.kernel的配置、编译、移植、调试4.制作根文件系统1.搭建交叉编译环境什么是交叉编译:(Kernel、Uboot、文件系统、用户app)代码在PC上开发、编译、链接出的可执行二进制文件下载(网络等多种方式)到开发板运行。为什么需要交叉编译:嵌入式系统资源有限,没...原创 2019-08-21 10:34:51 · 189 阅读 · 0 评论 -
RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验
RW007模块官方文档:https://www.rt-thread.org/document/site/application-note/packages/rw007_module_using/an0034-rw007-module-using/软件包:https://github.com/RT-Thread-packages/rw007SPI模式(基于rt-thread-...原创 2019-07-24 15:05:49 · 3866 阅读 · 0 评论 -
关于IAP程序中函数跳转以及堆栈合法性判断的理解
相关文章:STM32F407+Lwip TFTP客户端IAP升级教程在上文中制作了IAP过程中的BootLoader,有如下代码if (((*(__IO uint32_t*)USER_FLASH_FIRST_PAGE_ADDRESS) & 0x2FFE0000 ) == 0x20000000)上面这句话的意思是把用户代码的首地址里面的数据拿出来,看看是不是以0x2000...原创 2019-07-11 11:06:18 · 1897 阅读 · 2 评论 -
基于STM32F407的STM32通用BootLoader使用经验
背景: 在使用RT-Thread RTOS的时候发现官方提出了一种通用的BootLoader方案,支持F1和F4系列的芯片 硬件资源: 正点原子stm32f407zgt6探索者开发板,片上Flash(ROM)大小为1024KB,RAM大小为192KB,板载一个SPI Flash W25Q128 BootLoader概念BootLoader是硬件启动的引导程序,是运行操作系统的前提...原创 2019-07-10 18:45:24 · 10613 阅读 · 0 评论 -
原版LwIP和RT-Thread中LwIP的对应关系
所比较的LwIP版本为2.0.2原版(ethernetif.c) RT-Thread中LwIP 功能 low_level_init rt_stm32_eth_init (drv_eth.c) 调用以太网驱动函数,初始化 STM32F4xx以太网外设 low_level_output rt_stm32_eth_tx (drv_eth.c...原创 2019-06-14 20:02:18 · 2438 阅读 · 0 评论 -
Keil中使用Debug (printf) Viewer显示串口信息代替物理串口
背景在STM32开发中,可能会遇到某些情况下物理串口不够或者板卡上没有USB转串口模块。这时候可以利用Keil自带的Debug (printf) Viewer功能完成物理串口的功能。配置完成后的功能如下图所示:配置方法本人使用的是正点原子STM32F5407探索者开发板,demo使用hal库,完成led闪烁,小数显示。点击Keil工具栏的 Manage Run-Time Env...原创 2019-06-11 19:21:35 · 17371 阅读 · 1 评论 -
STM32F4XX定时器时基、数字滤波器配置
在学习hal库的时候遇到定时器配置的问题,现将定时器配置的方法以及相关公式进行总结本文主要完成的功能:配置TIM外设以使用相应的中断请求生成一秒的时基通用定时器TIM2-TIM5,TIM9-TIM14挂在于APB1总线,下面基于STM32F407zg的TIM3为例进行说明STM32F407zg的时钟树如下图所示APB1的预分频系数(APB1 Prescaler)为 4(不为1)...原创 2019-06-06 11:11:35 · 2155 阅读 · 0 评论 -
正点原子STM32F407探索版接入机智云LED控制教程
前言:代码分享:https://github.com/nicedayzhu/ALIENTEK_STM32F407_Gizwits正点原子官方提供了与机智云连接的开发手册,但是手册内容中的Gizwits文件目录和目前的机智云自动生成的代码目录有一定的差异,因此移植过程有了一些改变。为了方便大家针对新版机智云的代码进行移植,也为了给自己的移植过程做一个记录,特此写下移植过程。正点原子官方代...原创 2018-10-09 17:57:22 · 4753 阅读 · 13 评论 -
STM32F407+Lwip TFTP客户端IAP升级教程
前言:网络上有关TFTP远程升级MCU的资料基本上都是MCU作为TFTP服务器,PC作为客户端。从PC发送升级的bin文件给MCU进行升级。本文将使用MCU作为TFTP的客户端,PC作为TFTP服务端,MCU联网进入升级模式后,主动向服务器请求下载文件,进而实现远程升级IAP功能。有关MCU作为TFTP服务端的升级过程(HAL库),可以参考下面的链接【STM32以太网在线培训】手把手搭...原创 2018-11-18 00:43:05 · 8879 阅读 · 1 评论 -
移植LWIP MQTT出现Assertion "sys_timeout: timeout !错误
使用LWIP的mqtt_example.c移植到stm32f407上,运行出现Assertion "sys_timeout: timeout != NULL, pool MEMP_SYS_TIMEOUT is empty" failed at line 216 in src/core/timers.c错误。查找了一番发现这个是由MEMP_NUM_SYS_TIMEOUT大小设置不合适造成的,...原创 2018-10-27 21:00:49 · 2943 阅读 · 1 评论 -
STM32F407+lwip_2.1.0+MQTT移植记录
硬件平台:正点原子探索板F4(裸机,未搭载操作系统)STM32F407ZGT6 LAN8720 LWIP 2.1.0(版本在2.0.0以上的都有官方MQTT例子)步骤:新建网络例程模板:STM32F407开发板的HTTP模式IAP远程升级之新建模板 添加lwip官方例程中的mqtt_example.c和mqtt_example.h 参考\lwip-2.1.0\doc\mqtt_c...原创 2018-11-03 18:01:37 · 12779 阅读 · 0 评论 -
如何理解lwip中的回调函数
在学习LWIP里面的RAW编程接口时,需要有一个回调机制,在绑定完一个pcb之后需要注册一个回调函数。那么怎么理解这个回调函数呢?简单的讲,回调函数指的是我们在接收到某个事件之后,所需要紧接着进行的行为。比如说,我们在进行udp receive的时候,接收完成后我们希望立刻将所接收到的数据回传过去,这个时候我们就需要为udp receive函数绑定一个回调函数,这个回调函数就可以使用udp...原创 2018-11-24 16:01:20 · 2576 阅读 · 0 评论 -
在rt-thread中使用串口DMA模式的思考
DMA的定义直接存储器存取(Direct Memory Access,DMA)是计算机科学中的一种内存访问技术。它允许某些电脑内部的硬体子系统(电脑外设),可以独立地直接读写系统存储器,而不需绕道 CPU。在同等程度的CPU负担下,DMA是一种快速的数据传送方式。它允许不同速度的硬件装置来沟通,而不需要依于 CPU的大量中断请求。DMA有什么用?直接存储器存取用来提供在外设和存储器之间...转载 2019-02-15 15:19:29 · 3693 阅读 · 0 评论 -
rt-thread中rt_thread_delay出现卡死的原因分析
现象:线程调用rt_thread_delay()会导致进入idle线程然后卡住的问题么,我看rt_thread_delay()似乎有这样 https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=5274&highlight=rt\_thread\_delay使线程睡眠原理在实际应用中,我们有时需要让运行的当前...原创 2019-02-16 11:59:57 · 10991 阅读 · 0 评论 -
rt-thread中基于开启设备驱动和未开启设备驱动下的rt_kprintf()函数的分析
/*** rtconfig.h ***//* Kernel Device Object */#define RT_USING_DEVICE //开启设备驱动的定义#define RT_USING_CONSOLE //开启shell命令输出功能#define RT_CONSOLEBUF_SIZE 128#define RT_CONSOLE_DEVICE_NAME "uart1" /...原创 2019-02-16 21:56:44 · 2926 阅读 · 0 评论 -
RT-Thread中正点原子探索者F407-Bsp-Hal库配置uart引脚步骤
uart引脚设置drv_usart->rt_hw_usart_init->uart_obj[i].config = &uart_config[i];uart_config中包含了UART1_CONFIG#define UART1_CONFIG \ { ...原创 2019-03-22 10:24:01 · 1160 阅读 · 0 评论 -
基于正点原子F407的RT-Thread的FAL分区配置步骤
Fal配置(片内flash+外部flash_W25Q128) 开启BSP片上 Flash驱动(STM32F407-atk-exploer-Hal) 1.开启FAL工具包每个功能的配置说明如下:开启调试日志输出(默认开启); 分区表是否在fal_cfg.h中定义(默认开启)。如果关闭此选项,fal 将会自动去指定 Flash 的指定位置去检索并装载分区表,具体配置...原创 2019-04-24 19:37:44 · 5138 阅读 · 0 评论 -
嵌入式开发中的电平讲究
电气特性通信标准 低电平标准(发送端) 5V TTL 逻辑1:2.4V~5V 逻辑0:0V~0.5V RS-232 (负逻辑,电平较高为了满足长距离传输) 逻辑1:-15V~-3V 逻辑0:+3V~+15V ...转载 2019-05-11 11:35:01 · 437 阅读 · 0 评论 -
STM32F407开发板的HTTP模式IAP远程升级之官方例程移植
版权声明:本文为博主原创文章,转载请注明出处:https://blog.csdn.net/wbdxz/article/details/82859237关于远程升级的模板建立,可以参考下面的博文STM32F407开发板的HTTP模式IAP远程升级之新建模板 STM32F407开发板的HTTP模式IAP远程升级之官方例程移植接上文为止,已经建立好了一个可以ping通的以太网工程模板,...原创 2018-09-26 21:43:26 · 14134 阅读 · 23 评论