stm32

NB-IOT开发|nbiot开发教程《一》AT指令类模组驱动解析

怎甘沉沦 提交于 2020-02-07 06:47:43
嵌入式开发中我们要时刻保持代码的高效与整洁 一、前言 嵌入式开发中我们要时刻保持代码的高效与整洁 。NBIOT的出现带动了物联网行业的火爆,物联网行业似乎总是离不开NBIOT。但是,我将NBIOT归为AT指令模组一类,这一类模组没有什么高深之处,也没有深度可言。但是想要很好的使用AT指令模组却是一件不简单的事情。想要很灵活的使用AT指令的模组需要用到 状态机。 AT指令类模组包括:nb-iot模组,gprs模组,wifi模组,LoRa串口透传模组等等,设计很多,应用广泛。 二、AT指令类模组总结 AT指令类模组的使用步骤可以分为:模组初始化和模组收发数据。我们翻开模组的手册可以发现,模组的初始化就是一个状态到另一个状态之间的切换, 每一时刻该对象必须处于且只能处于其中一种状态中。 三、状态机原理 状态机的定义网上有很多,我主要说一下状态机的工作原理。 状态机组成:状态(state),事件(event)和动作(action); 四、AT指令模组状态机工作原理 前面说了状态机组成:状态(state),事件(event)和动作(action); AT指令模组状态机原理: 状态:1.发送AT确认模组是否正常;2.配置模组参数;3.发送数据;(暂定三个状态) 动作:1.发送AT确认模组是否正常->通过串口发送AT\r\n,模组正常会返回OK,模组不正常返回非OK数据或者不返回。 2

用LabVIEW制作STM32外设驱动空文件懒人创建工具

荒凉一梦 提交于 2020-02-07 00:20:43
在学习STM32时,经常要针对一些外设,如LED、HX711模数转换、ADS1256,编写其驱动,需要手动建立如LED.h头文件和LED.c。我是个懒人,虽然平时要用的外设也不多,都已经有自己的库函数了,但还是利用LabVIEW做了一个创建.c .h文件的工具。 实现方式: 1.程序总体建立在while循环中的时间结构中,触发条件是“新建按钮”被按下,即运行条件结构中的程序。 2.利用“创建文件夹”控件路由到要创建文件夹的绝对路径,然后用“创建路径”控件接收上一部的绝对目标路径,并用“创建文件”控件接收上一步选择的路径和输入的文件名,拼接成.c或.h的绝对路径,使用“创建文件”接收上一部的路径创建文件,用“写入文本文件”控件接收上一部的句柄和文件内要写入的东西(如#include"stm32f10x.h"),然后关闭文件,至此文件创建和写入内容完成。 3.文件名和写入的内容与外设的名字有关(如外设为HX711,一般写为hx711.c和hx711.h),故用到拼接字符串函数。 4.最后,将各控件的错误合并,将其与用于终止while循环的按钮取或运算,这样,一旦你按终止按钮或者是程序运行中报错都可以及时终止运行。 程序框图: 运行中的前面板: 结果: 来源: CSDN 作者: Pilot.Phil 链接: https://blog.csdn.net/qq_37769785

STM32单片机程序与6个设计原则之开闭原则

 ̄綄美尐妖づ 提交于 2020-02-06 08:17:20
片头 在上一篇文章中已经介绍了“单一职责原则”在单片机程序中的使用,并以“环形缓存”作为介绍切入点,因为“环形缓存”在应用中比较多,所以在介绍“开闭原则”时依然以它作为介绍切入点。 六个设计原则分别是:A、单一职责原则;B、开闭原则;C、里氏替换原则;D、最少知识原则;E、接口隔离原则;F、依赖倒置原则;G、激活原则; 以上有7个,最后一个是我加上去的,此文主要介绍第二个设计原则:开闭原则在设计STM32单片机软件的应用。 正文 定义:开闭原则表示打开拓展的大门,关闭修改的大门。 要做的“开闭原则”首要任意就是解决(确定)范围,即开闭原则的软件单位。那么在单片机软件开发中的职责单一的软件单位是什么呢?是一个函数,一个结构体,一个枚举定义,一个软件模块(XXX.c与XXX.h)。 首先以一个电路图说明“开闭原则”的例子(在此假设读者具备一定原理图知识)背景假设:此图是一个智能锁的原理图,目前此图版本:V7.0。如下图所示: 由于市场需求需要增加人体识别PIR传感器,需要对V7.0版原理图 “更新”。现在有以下两种更新方案,如下图所示: 以上两种方案,一个调整了原来的信号定义,一个不改变原来信号定义。哪个方案优哪种方案劣?从版本后看:现在到了8.0版,可见之前有很多个版本,需要考虑的情况很多。假设现在V8.0版已经是这个“智能锁”产品的第10个年头了。之前V1.0还有库存吗

ERROR_DOWNLOAD_TASK_START_ISSUE on System Workbench STM32 Eclipse

大憨熊 提交于 2020-02-06 08:08:36
问题 Trying to start a new project for STM32F446RE board for blinking LED. There is an error which restricts me from downloading the firmware. I tried downloading the firmware from STM website and pasting in SystemWorkbench Firmware folder in AppData . 回答1: One can download the zip file at http://www.ebuc23.com/s5/ac6/software/firmware/stm32f4_dsp_stdperiph_lib_v180.zip and paste the Zip file and the extracted file in C:\Users\User_Name\AppData\Roaming\Ac6\SW4STM32\firmwares and reopen Eclipse and

ERROR_DOWNLOAD_TASK_START_ISSUE on System Workbench STM32 Eclipse

北慕城南 提交于 2020-02-06 08:06:08
问题 Trying to start a new project for STM32F446RE board for blinking LED. There is an error which restricts me from downloading the firmware. I tried downloading the firmware from STM website and pasting in SystemWorkbench Firmware folder in AppData . 回答1: One can download the zip file at http://www.ebuc23.com/s5/ac6/software/firmware/stm32f4_dsp_stdperiph_lib_v180.zip and paste the Zip file and the extracted file in C:\Users\User_Name\AppData\Roaming\Ac6\SW4STM32\firmwares and reopen Eclipse and

What initialises the contents of the STM32's USB BTABLE when the __HAL_RCC_USB_CLK_ENABLE() macro is executed in HAL_PCD_MspInit()?

巧了我就是萌 提交于 2020-02-06 07:58:09
问题 I have used STM32CubeMX/IDE to generate a USB HID project for the STM32F3DISCOVERY board. The USB BTABLE register is zero, indicating that the BTABLE is at the start of the Packet Memory Area. (I zero the whole PMA at program start, to avoid stale values.) Just before the execution of the __HAL_RCC_USB_CLK_ENABLE macro (in HAL_PCD_MspInit() in usbd_conf.c ) the values of the BTABLE (at index zero onwards, in the PMA are: After that macro is executed, the values are: The macro expands to: do {

What initialises the contents of the STM32's USB BTABLE when the __HAL_RCC_USB_CLK_ENABLE() macro is executed in HAL_PCD_MspInit()?

两盒软妹~` 提交于 2020-02-06 07:57:01
问题 I have used STM32CubeMX/IDE to generate a USB HID project for the STM32F3DISCOVERY board. The USB BTABLE register is zero, indicating that the BTABLE is at the start of the Packet Memory Area. (I zero the whole PMA at program start, to avoid stale values.) Just before the execution of the __HAL_RCC_USB_CLK_ENABLE macro (in HAL_PCD_MspInit() in usbd_conf.c ) the values of the BTABLE (at index zero onwards, in the PMA are: After that macro is executed, the values are: The macro expands to: do {

How can i switch on LED on STM32F1 GPIO pin PA2?

烂漫一生 提交于 2020-02-06 07:55:30
问题 How can i switch on the LED on PA2 GPIO (STM32F103C8T6), using standard registry configuration. RCC-> APB2ENR |= (1<<2); GPIOA->CRL |= (1<<9); GPIOA->ODR |= (1<<3); Does not work for me. Could you please advice where i make mistake? 回答1: As per the reference manual, the GPIOA CRL registers resets as 0x4444 4444 (See section 9.2.1 of the reference manual). When you execute the following command: GPIOA->CRL |= (1<<9); you are setting the MODE bits of PA2 to 10 (Output mode, max speed 2 MHz).

STM32串口下载程序

假如想象 提交于 2020-02-05 21:40:33
STM32 串口下载程序 引言: 如果我们用下载器下载程序很快,很方便,但是需要购买下载器,很破费。为此我们用串口 下载程序,省去了购买下载器的麻烦。 下面介绍用串口下载程序的方法: 所需工具: 串口转 TTL 模块一个,STM32 单片机一个,杜邦线 4 根,mcuisp 软件。 单片机最小系统如图所示: 自制串口下载电路:(自制开发板的时候使用,本文档不使用) 一键下载电路如图所示: 要想了解串口下载电路的工作过程,首先要了解 STM32 的几种启动模式。 STM32 的几种启动模式如下表所示: BOOT1 BOOT0 启动模式 说明 X 0 用户闪存存储器 Flash启动,运行 0 1 系统存储器 串口下载 1 1 SRAM启动 SRAM启动,调试 要想下载程序,必须让 BOOT1=0,BOOT0=1. 运行程序,必须 BOOT0=0; 5.串口和 STM32 的连线: 下面介绍单片机最小系统和串口连接的引脚图: 单片机 串口 A9 RX A10 TX GND GND VCC 3.3v 串口连接图: 芯片连接图: 6.mcuisp 下载软件的使用: 步骤详图: 打开 mcuisp,先执行 1,2,3 步。点击搜索串口,将自动找到电路板串口,在 bps 中选择 波特率为 256000,左下角设置:DTR 的低电平复位,RTS 高电平进 BootLoader。 设置完 1,2,3

stm32的几种下载程序的方式

∥☆過路亽.° 提交于 2020-02-05 21:11:34
stm32的下载方式我目前接触最多的有三种,用串口ISP烧录hex文件,用仿真器一键烧录,还有那种小白式的bootlaoder固件升级烧录 用转串口模块烧录hex文件 首先要下载一个软件,然后怎么下载嘞我不想说,因为这种方式用的不多。 下载一个软件叫 FlyMcu 然后给你们几个链接 这是关于boot1引脚的设置 这是这么烧录的讲解 至于这么生成hex文件自己去刷视频,应该会有讲滴。 用仿真器一键烧录 敲黑板,这个是最常用的 仿真器有好几种,jlink,stlink,dap…还有一些,实际上这么配置都一样,买仿真器直接向商家要资料,这么玩都会告诉的。 仿真器选择的话,如果只是32入门的话买一个stlink就可以了,便宜嘛,不超过20块钱。 我用盗版的jlink比较多,相对来说jlink支持的芯片多一点,价格在100左右。 当然,自从V9出来以后jlink自制起来也很简单,网上开源的有一个以stm32f2系列的一个固件,去搞个这样子的也就几十块钱。什么时候我自己搞一个出来了再跟大家分享,去咸鱼上应该已经找得到了。。 DAP的话是ARM官方的开源仿真器,它最好玩的就是开源嘛,淘宝价五六十的样子,用起来还行。 最后一种挺好玩的,实际是做产品用于给别人升级固件的,我在这里不做解释,以后有机会再解释。 来源: CSDN 作者: 嗣-音- 链接: https://blog.csdn.net