用keil5,在cm3_core.h添加#include "stm32f10x.h"后,这里报错:error in include chain(stm32f10x.h)。删除后就恢复正常了。 注:这里的core_cm3.h头文件的编写有问题的。应该是 #ifndef __CORE_CM3_H #define __CORE_CM…
最近在使用MDK调试STM32控制器,当下载完成,需要使用ST-LINK进行程序仿真时。MDK偶尔会出现错误提示“Error: Encountered an improper argument”。大概意思是说“错误:遇到不正确的参数”。出现这种情况时,对话框关掉之后会再次出…
要是能熟记以下知识点,再加上自身的项目经验,过个面试,问题不大。 指针定义 一个指向指针的的指针,它指向的指针是指向一个整型数
int **a;
一个有10个指针的数组,该指针是指向一个整型数的
int *a[10];
一个指向有10个…
文章目录前言一、Ubuntu中Visual Studio Code的安装及简单调试二、Proteus仿真运行stm32程序总结前言
本文讲解了小白在Ubuntu中下载安装VSCode,并且在其中进行简单调试的过程。还有在proteus中进行硬件仿真,再在Keil里面进行软件仿真,然后将…
1、借助STM32CubeMX生成系统及外设相关初始化代码。 在以上配置后就可以生成相关初始化代码了。
/* ADC1 init function */
void MX_ADC1_Init(void)
{/* USER CODE BEGIN ADC1_Init 0 *//* USER CODE END ADC1_Init 0 */ADC_ChannelConfTypeDef sConfig {0};/* USER COD…
0. 写在最前 本栏目笔记都是基于stm32F10x 1. RCC简介
RCC是Reset and Clock Control (复位和时钟控制)的缩写,它是STM32内部的一个重要外设,负责管理各种时钟源和时钟分频,以及为各个外设提供时钟使能。RCC模块可以通过寄存器操作或者库函数…
一、BOOT模式选择图解 二、BOOT模式介绍
所谓启动,一般来说就是指下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。
A. Mai…
STM32G070RBT6基于Arduino串口的使用📓STM32G070RBT6串口资源介绍 ✨STM32G070RBT6总共有4个USART资源。 Serial1 for USART1
Serial2 for USART2
Serial3 for USART3
Serial4 for UART4🔖默认情况下,只有一个Serialx实例映射到通用Serial名。…
C 编译报错“jump to label” 分析解决方法如何在Eclipse中添加编译选项 分析
void func()
{int a 0;a;goto label;
label:int b 0;return;
}这样的代码是有问题的,因为C编译规则中,不允许goto后面还有新的变量声明。
解决方法
将所有变量声明放到第…
学习FreeRTOS(1):实验环境
FreeRTOS实验环境:指导手册《Mastering the FreeRTOS Real Time Kernel A Hands-On Tutorial Guide》;开发板NUCLEO-F303K8;代码生成器STM32CubeMX;集成开发环境TrueSTUDIO。
http://blog.…
AD9528是ADI(亚德诺半导体技术有限公司, Analog Devices, Inc. 简称ADI )出品的一款双级PLL,集成JESD204B SYSREF发生器,可用于多器件同步。第一级锁相环(PLL) (PLL1)通过减少系统时钟的抖动,从而实现输入基准电压调理。第二级PLL (PLL2)提供…
举例 stm32f103c8t6 公司; ST-- 意法半导体公司名 M – Microcontrollers
系列; 32 – 基于ARM的32位微处理器 8 – 8为微处理器
类型; F – 通用性 S – 高性能 L – 低功耗 H – 高性能 AL – 汽车应用低功耗性 AF – 汽车应用通用性
子…
serial.serialutil.SerialException: could not open port ‘COM7’: PermissionError(13, ‘�ܾ����ʡ�’, None,
调试esp8266时,因为串口一直在打印信息,串口忙不过来,…
为了让程序可以使用“printf”进行输出,从而使用串口程序。 在编译程序是报错: …\OBJ\test_program.axf: Error: L6915E: Library reports error: __use_no_semihosting was requested, but a semihosting fputc was linked in…
解决方案:…
报错信息:Error[Li005]: no definition for “HAL_ETH_DMATxDescListInit” [referenced from E:\IAR\A_FileTransfer\LiwipNoos\EWARM\LiwipNoos\Obj\ethernetif.o]
解决方案
1. 要在#include "stm32f7xx_hal_conf.h"的相应库函数头文件打开 2. 要在工…
临界段的保护
在进入临界段之前,会先把中断关闭,退出临界段时再把中断打开。对于中断的操作,Cortex-M内核专门设置了一条CPS指令,有4种用法:
CPSID I ; PRIMASK1,关中断
CPSIE I ; PRIMASK0,开…
1、 在main.c文件中 /* USER CODE BEGIN 0 */ 和 /* USER CODE END 0 */ 之间加入如下代码
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
extern ApplicationTypeDef Appli_state;
extern USBH_HandleType…
目录1 嵌入式系统的概念1.1 定义一1.2 定义二2 嵌入式系统的分类2.1 嵌入式微处理器(Embedded Microprocessor Unit, EMPU)2.2 嵌入式微控制器(Microcontroller Unit, MCU)---即单片机2.3 嵌入式 DSP 处理器(Embedded Digital Signal Processor, EDSP)2.4 嵌入式片上系统(Syste…
mingdu.zheng at gmail dot com http://blog.csdn.net/zoomdy/article/details/78708490
问题描述
STM32F7的Flash可以在两个地址空间可见,一是AXIM接口的0x08000000处,二是ITCM接口的0x00200000处。如果将Flash定位到0x08000000处,使用J-L…
一、概述:
启动文件就做了如下的几个主要功能
This module performs:
- Set the initial SP //设置初始化堆栈空间
- Set the initial PC Reset_Handler //设置PC指针
- Set the vector table entries with the exceptions ISR address …
The PCF8574 device provides an open-drain output (INT) that can be connected to the interrupt input of a microcontroller. An interrupt is generated by any rising or falling edge of the port inputs in the input mode.
在输入模式的时候,如果有引脚的…
CAN 简介
CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信 协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种 各样的电子控制系统被开发了出来…
STM32 CAN
CAN协议简介
CAN是控制器局域网络(Controller Area Network)的简称,它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11519),是国际上应用最广泛的现场总线之一。CAN总线协…
开发软件
不支持Keil,使用IAR for STM8,注意 IAR系列有很多种 STM8对应软件是 IAR for STM8 软件下载: 官网下载地址,官网版本下载比较麻烦,可以按教程网盘地址下载。 下载安装教程: https://www.cnblogs…
通信接口
通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统通信协议:制定通信的规则,通信双方按照协议规则进行数据收发 差分电平(Differential Voltage Level)是指用两个相对的电平来表示信号的电压差异。它是通过将…
1.TFT_LCD简介:薄膜晶体管液晶显示器TFT_LCD(Thin Film Transistor-Liquid Crystal Display)在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),能够有效的克服非选择时的串扰,使显示屏的静态特性与扫描线数无关…
STM32 工程模板没有统一的格式,可以参考 ST 官方的示例模板或者根据自己的开发经验和使用习惯总结。
Project Template
文档以库函数工程模板为例,HAL 库工程模板对应参考即可。
Official Project Template
ST 发布的标准外设库 (STM32 Standard Per…
STM32踩坑笔记
一、IAR开发7.0以上版本
警告:Warning[25]: Label ‘NMI_Handler’ is defined pubweak in a section implicitly declared root 该警告存在于IAR7.0以上版本环境下的STM32的启动文件xxx.s中,根据百度搜索的回复是高版本IAR取消使用STM3…
这段话告诉我们,在程序的最后,使用了printf()函数,它会在屏幕上输出一些东西。这个函数的作用就像是发言人,能够让程序输出人话。通过使用printf()函数,程序输出的结果是:“There are 12 feet in 2 fathoms…
1.修改默认的固件包下载路径,避免占用C盘空间 2、选择ACCESS TO MCU 3、在跳出的界面中的Part Number中搜索对应的芯片型号 4、选好后在右下角双击对应的芯片,然后跳出配置界面 左边可以配置外设,右边可以配置每个IO口的功能
System Core包括…
C6748的定时器在32位模式下有两种模式选择,一种是关联模式(chained mode),另一种是非关联模式(unchained mode)。可以通过设置定时器全局寄存器(timer global control register (TGCR)ÿ…
STM32下载出错:flash timeout.reset the target and try it again1、出错提示2、解决方法下载连接1、出错提示
编译环境:Keil5 下载器:高速DAP,STLINK 在Keil5点击LOAD下载时,先是卡了一会,然后弹出flash …
一般一个STM32只有2个DAC输出通道,如果需要多路DAC输出,可以选择外扩DAC,但成本回相当高。于是在一些精度要求不高的场合,我们采用定时器输出PWM和RC滤波器模拟DAC来代替外扩DAC。
PWM占空比可由以下式子计算出:p n …
一、所需元器件
52单片机芯片 X 1;8*8 LED点阵 X 32;74HC595位移寄存器 X 16 ;74HC154译码器 X 1;74HC04 X 4;PNP三极管 X 16;电阻电容若干。
二、STC89C52
STC89C52是STC公司生产的一种低功耗、高性能C…
1、当一个项目使用某个外设功能,而其他项目不使用时,可以用以下代码定义
config CONFIG_LCD_BACKLIGHTtristatedefault y if LCD_BACKLIGHTy helpSay yes here to support the LCD BACKLIGHT GPIO device在使用这个外设功能的项目的deconfig中写&#x…
bcd码转换成ascii码Problem statement: 问题陈述: To convert ASCII to BCD 8-bit number using 8086 Microprocessor. 使用8086微处理器将ASCII转换为BCD 8位数字。 Algorithm: 算法: Load the value from memory into register AL 将内存中的值加载…
目录酱一、RTC简介二、创建CubeMX工程三、修改代码四、总结参考一、RTC简介
RTC (Real Time Clock):实时时钟。RTC是个独立的定时器。RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设…
9-自己写库—构建库函数雏形 问题(1):
stm32f10x.h(44): error: #256: invalid redeclaration of type name "GPIO_TypeDef" (declared at line 44) }GPIO_TypeDef; stm32f10x.h(59): error: #256: invalid redeclaration of …
C/C内存分布 一、内存组成二、静态区域文本段 (Text / 只读区域 RO)已初始化读写数据段(RW data -- Initialized Data Segment)未初始化数据段(BSS -- Block Started by Symbol) 三、动态区域堆(…
linux 系统
linux 基础环境配置
linux下编程代码实验 CMake/Make/Shell/Multi-thread/socket/stl/awk
linux 软硬件驱动
Linux程序设计 中文版 第四版
Linux中国翻译项目
Vim Practice
Linux命令必知必会
Unix环境高级编程 代码&学习笔记
ubuntu deb软件包搜索下…
GE IS220PAICH2A 336A4940CSP11 是一款数字量输入模块,通常用于工业自动化和控制系统中,用于监测和采集数字输入信号。这种类型的模块可以在各种应用领域中发挥作用,以下是一些可能的应用领域: 工业过程控制: GE IS220…
先来完善一下FreeRTOSConfig.h这个配置文件
/*FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.All rights reservedVISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.This file is part of the FreeRTOS distribution.FreeRTOS is …
1. USB_DEV_BULK——USB OTG 从方式(USB BULK 管道通信) 演示 USB 从方式,通过"USB BULK"管道实现主机和评估板的数据交换。 通过 Mini OTG 转换头将评估板 OTG 接口和 PC 机 USB 接口连接,然后在 PC 机中安 装 USB 驱动程序,具体驱动程序是在产品资料"Dem…
STM32CubeMX学习笔记(46)——USB接口使用(HID自定义设备)
STM32CubeMX实现STM32 USBHID双向64字节通信(下位机部分)
STM32 USB HID设置(STM32CubeMX)
关于keil 5安装出现Fail to set path to Software Packs.问题解决方法
026- STM32学习笔记 - ADC初识(一) 前几天不小心把板子掉地上了,液晶屏摔坏了,暂时先停一下液晶屏的学习,等新的板子来了再继续学习。
一、ADC介绍
ADC指的是Analog to Digital Converter(模数转换器&…
文章目录 有符号数是如何判断正负符号位的? 运行结果: 有符号数是如何判断正负符号位的?
#include<stdio.h>
int main()
{int input_data 0;printf("Please input the data ! \n");scanf("%d",&input_data);…
从这里开始,我们就踏上了学习 Linux 的路程。长路漫漫亦灿灿,祝我也祝所有看到这篇文章的朋友!!! 参考书目:【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81 / ARM 裸机与嵌入式 Linux 驱动…
CAN 文章目录 CAN一、配置1、对扩展数据帧进行过滤:(只接收扩展数据帧)CAN_FilterIdHigh:CAN_FilterIdLow:2、对扩展远程帧过滤:(只接收扩展远程帧)3、对标准远程帧过滤:(只接收标准远程帧)4、对标准数据帧过滤:(只接收标准数据帧)5、对扩展帧进行过滤:(…
STLINK在MDK5.28或其他版本中下载程序后不能复位,需要手动按复位键,MCU 才正常运行。
首先判断是不是该MDK版本的问题,按照以下进行
点击魔法棒 点击Debug,Settings
勾选Reset and Run
如果还是不行,取消Enable…
STM32CubeIde 实现printf打印输出,在IDE生成的程序的main中的/* USER CODE BEGIN 4 /和/ USER CODE END 4 */之间放下面代码:
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#define GETCHAR_PROTOTYPE int __io_getchar(FILE *…
本文主要记录使用CLion开发STM32,并调试相关功能
使用的CLion版本:2023.3.1 CLion嵌入式配置教程:STM32CubeMX项目 |CLion 文档 (jetbrains.com) OpenOCD官网下载:Download OpenOCD for Windows (gnutoolchains.com) GNU ARM工…
配置你想要重映射的串口,这里用串口1举例子,你完全可以定义成其他串口。 波特率和位数格式完全按照需要定义,这里不要开启dma和中断。 这里建议使用单独生成.c和.h,当然你不生成也完全可以。
/* USER CODE BEGIN 0 */
int __io_p…
前言
Linux I2C驱动是嵌入式Linux驱动开发人员经常需要编写的一种驱动,因为凡是系统中使用到的I2C设备,几乎都需要编写相应的I2C驱动去配置和控制它,例如 RTC实时时钟芯片、音视频采集芯片、音视频输出芯片、EEROM芯片、AD/DA转换芯片等等。…
ST Motor Profiler是STMicroelectronics提供的一款工具软件,用于测量和识别无刷直流电机的参数,并生成适用于MCSDK的配置文件。使用ST Motor Profiler和MCSDK可以方便地进行电机参数测量和调节。
下面是使用ST Motor Profiler和MCSDK进行无刷电机参数测…
一.SDIO简介
SDIO,全称Secure Digital Input/Output,是一种用于在移动设备和嵌入式系统中实现输入/输出功能的接口标准。它结合了SD卡的存储功能和I/O功能,允许设备通过SD卡槽进行数据输入输出和外围设备连接。
SDIO接口通常被用于连接各种…
STM32 和 ARM 是两个不同的概念,但它们之间存在一定的联系。 STM32是一种微控制器产品,由意法半导体(STMicroelectronics)推出,其内核采用了 ARM Cortex-M 核。ARM 是一家英国芯片设计公司,专注于设计和许可…
在使用Arduino的资源库对STM32编程时,出现:
error: ordered comparison of pointer with integer zero (byte* {aka unsigned char*} and int)
编译错误的解决方法。
Arduino因其开源和易用性,丰富的三方资源,受到很多人的喜欢…
ESP32_经典蓝牙使用 一、经典蓝牙1、示例代码2、经典蓝牙相关知识一、经典蓝牙
1、示例代码
先来个示例代码 配置成功后会提示BT initial ok and ready to pair.表示蓝牙已经初始化完成,等待连接 这个时候我们可以用手机的蓝牙调试软件,连接,并且进行数据的收发测试 蓝牙调…
Talk is cheap, show you code! 编译平台:Arduino IDE
/*** 功能:软件串口读取S-BUS数据;解析;串口打印*/
#include <SoftwareSerial.h>
#define None 5//D1(空)
#define DataPort 14//D5uint8_t Data_packet[…
startup_stm32f407xx.c 会调用该函数的SystemInit
/** addtogroup STM32F1xx_System_Private_Functions* {*//*** brief Setup the microcontroller system* Initialize the Embedded Flash Interface, the PLL and update the * SystemCoreClock variable.*…
USB 转串口模块在开发板上是一个独立的模块,可以通过调帽与其他串口连接,USART1/2/3/4/5,只有USART1才具有串口下载的功能
一、硬件连接:
1、BOOT0和BOOT1接地,RXD/TXD接PA9/PA10,开发板默认的调帽&#…
STM32F103ZE_DMA笔记 直接存储器访问 (DMA) 用于在外设与存储器之间以及存储器与存储器之间提供高速数据传输。可以在无需任何 CPU 操作的情况下通过 DMA 快速移动数据。这样节省的 CPU 资源可供其它操作使用。说白了DMA就是一个搬运工,将数据从一个地方搬到另一个地…
Cortex-M入门
还是要看书,看书才能系统性地掌握。手上得有块开发板,实践才能深刻理解。开发工具要用好,“工欲善其事,必先利其器”。
http://blog.csdn.net/zoomdy/article/details/54799787 mingdu.zheng at gmail dot com
还…
IARST-Link调试STM32时,出现 Fatal error: The selected device does not match the target device 错误,并且无法调试。这是 IAR Embedded Workbench for ARM 7.80.3 的一个bug,从IAR下载补丁即可解决该问题。
根据帖子 http://www.stmcu.o…
Linux环境下ARM开发工具TrueSTUDIO初体验
TrueSTUDIO是Atollic公司出品的ARM开发工具,号称“The best FREE C/C IDE for ARM development”,从7.0版本开始推出了Linux版,后续还会推出Mac OS X版。截止今日(2017年1月25日…
STM32用J-Flash ARM 软件连接jlink仿真器擦除芯片时遇到错误 RAM check failed address 0x20000000.Write: 0x03020100 07060504 Read : 0xAAAAAAAA AAAAAAAA(0 bytes of RAM have been checked successfully)Failed to erasechip也可能出现0x20000008,0x2000000c.c…
创龙TL6748开发板中,EMIFA模块使用默认的PLL0_SYSCLK3时钟,使用AISgen for D800K008工具加载C6748配置文件C6748AISgen_456M_config(Configuration files,在TL_TMS6748/images文件夹下),由图可以看到DIV3等…
在STM32中CAN1和CAN3是独立的,CAN2和CAN1有关联,所以在CAN2初始化和设置过滤器前需要添加CAN1的代码。
CAN_HandleTypeDef hcan1;/* CAN1 init function */
void MX_CAN1_Init(void)
{/* USER CODE BEGIN CAN1_Init 0 *//* USER CODE END CAN1_Init 0 *…
文章目录 ST STM32H723ZGTx - NUCLEO-H723ZG DMAMUX_RequestGen例程重现/消化/改进概述笔记问题的难点为了确定程序流程, 加入ITM将CubeMX升级到最新将CubeMX说明书翻一下CubeMX配置芯片功能实验工程主要代码.sct文件main.c中断实现文件 stm32h7xx_it.c.ioc补充END ST STM32H72…
嵌入式端的神经网络算法部署和实现
介绍关于 ARM NN、CMSIS NN 和 K210 等嵌入式端的神经网络算法的部署和实现。神经网络的调教(训练)还是在 PC 端,神经网络参数训练好之后,在嵌入式端进行部署(本文的中心࿰…
头文件:#include "time.h" 在time.h文件中找到:struct tm {int tm_sec; /* seconds after the minute, 0 to 60(0 - 60 allows for the occasional leap second) */int tm_min; /* minutes after the hour, 0 to 59 */int tm_hour; /* ho…
当使用STM32 ARM Cortex-M微控制器时,ST的免费嵌入式软件STM32Cube提供了所有必要的驱动程序和中间件组件,以减少初始的开发工作。在上述提到的中间件组件中,其中一个是非常受欢迎的FreeRTOS实时操作系统,Nabto正在努力建立一个强…
1、前言 该系列文章用于记录个人学习stm32单片机的过程,欢迎指导讨论~。 2、中断知识点梳理 中断 { N V I C ( 内嵌向量中断控制器 ) { 中断向量表 优先级 { 抢占优先级 响应优先级 自然优先级 优先级分组 E X T I ( 外部中断 ) { 触发方式 { 上边沿 下边沿 双边沿 …
(一)C语言中的种类数据
整型:int short long
实型:float double
(二)STM32中的数据类型非常的多,常用的变量,文件中的定义如下:
/* exact-width signed integer type…
ADC(Analog to Digital Converter),模拟数字转换器,是电子工程师必须掌握的一个内容。由于单片机、计算机等是由0和1组成的,因此其无法直接测量或使用连续的模拟信号,需要用ADC将模拟信号转换为离散的数字信号。ADC的具体原理在此…
一、简介
CPU 中央处理器,内部主要包括寄存器、运算器、控制器。
寄存器:存储数据运算器:处理数据控制器:控制硬件IO口的高低电平x0、x1:存放参数的寄存器w0、w1:是寄存器x0、x1的低32位,使用…
🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2022博客之星TO…
GE IS220PDIAH1A 336A4940CSP1 是一款控制主板模块,通常用于工业自动化和控制系统中。以下是可能与这种控制主板模块相关的一些产品功能: 信号处理: GE IS220PDIAH1A 336A4940CSP1控制主板模块通常负责信号处理,可以接收、放大、滤…
1. NTP简介
NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网 络中的计算机时钟同步到UTC,再配合各个时区的偏移调整就能实现精准同步对时功能。
NTP 服务器(Network Time Pr…
//main.c文件
/* USER CODE BEGIN Header */
/********************************************************************************* file : main.c* brief : Main program body************************************************************************…
GitHub - stm32duino/Arduino_Core_STM32: STM32 core support for Arduino 帮助 wiki
system:stm32的启动文件
corel/arduino :包含与arduino相关的文件
library:示列,以及于ARDUINO相关的函数(SRCWRAPPER文件&…
Arduino PLC IDE MCU单片机进入全新的PLC领域概述需要的硬件和软件下一步操作1. Arduino PLC IDE Tool Setup2. Arduino PLC IDE Setup3. Project Setup4. Download the Runtime5. Connect to the Device6. License Activation with Product Key (Portenta Machine Control) 结…
一、概述 OP-TEE 是一个开源工程,完整的实现了一个可信执行环境。 主要包括 Secure world OS(optee_os)、normal world client(optee_client)、test suite(optee_test/xtest)以及 Linux 驱动部分…
BetaFlight飞控启动&运行过程简介疑问跟踪 1. 源由2. 【已解存疑】问题一:6.1 Why desiredPeriodCycles is so important to Betaflight task?3. 【已解】问题二:6.2 What root cause has made gyro task to been overrun, so scheduler has to ski…
7.6.1何为实时时钟
(1)real time clock,真实时间,就是所谓的xx年x月x日x时x分x秒星期x
(2)RTC是SoC中一个内部外设,RTC有自己独立的晶振提供RTC时钟源(32.768KHz),内部有一些寄存器用来记录时间ÿ…
CAN 通信的应用非常广泛,本文不涉及CAN通信的基础配置,重点分析一下STM32和GD32的CAN通信两种ID过滤方式。
首先,不管是STM32还是GD32,实现CAN通信ID过滤的机制和原理一定是一样的,只是用到的寄存器有差别。
1. ID过…
LoRaWAN (Long Range Wide Area Network) 是一种低功耗的无线通信技术,用于构建广域物联网。本篇文章将介绍基于STM32微控制器的LoRaWAN无线通信网络的设计与实现,并提供相应的代码示例。
概述
LoRaWAN的无线通信技术采用低功耗长距离传输,…
## Serial Port
Qt 提供了串口类,可以直接对串口访问。我们可以直接使用 Qt 的串口类编程即可,十分方便。Qt 串口类不仅在 Windows 能用,还能在 Linux 下用,虽然串口编程不是什么新鲜事儿,既然 Qt 提供了这方面的接口,我们就充分利用起来,这将会使我们的开发十分方便!…
键盘控制ROS车运动
上位机
使用pyseria库与stm32单片机进行通信控制
#!/usr/bin/env python
# -*- coding: utf-8 -*import sys, select, termios, tty
import serialmsg """
---------------------------w a x ds w : x a : y
s : -x …
STM32 中级
前言
仍然是学习自野火F407网课。
启动文件详解
作用:
初始化堆栈指针 SP_initial_sp初始化 PC 指针 Reset_Handler初始化中断向量表配置系统时钟调用 C 库函数 _main 初始化用户堆栈,从而最终调用 main 函数去到 C 的世界
栈ÿ…
目录
前言
阶段1
大一到大三这个阶段我与大多数学生相同:
关于如何学习嵌入式软件开发:
① 学习51单片机
② 开始查资料看书
③ 开始学习STM32
④ 开始增强 C 语言
⑤ 认真研读 OS 方面的书
⑥ 自己仿照 ucos 写一个 stm32 上的实时 os 出来
…
STM32G47x 单片机FDCAN作为普通CAN外设使用教程 控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽…
1. 针对正点原子 Linux 教程中的 VMware Workstation Pro 17 软件中的密钥,这里给出可用的密钥,欢迎使用!同时也希望拿到密钥的朋友在 Linux 学习的路上一帆风顺,事半功倍!!! MC60H-DWHD5-H80U9…
STM32CubeIDE的程序功能写多了,一般不愿意再次使用.ioc这个配置工程的底层了,因为有部分程序是直接改配置的,一旦再次生成就会冲掉自己改的部分,因为不能自己定义 /* USER CODE BEGIN 1 *//* USER CODE END 1 */这样的不被重新生成…
震动传感器简单介绍 若产品不震动,模块上的 DO 口输出高电平; 若产品震动,模块上的 DO 口输出低电平,D0-LED绿色指示灯亮。 震动传感器与STM32的接线 编程实现 需求:当震动传感器接收到震动信号时,使用中断…
CAN收发器放大图 CAN总线3节点框图,如下图
图① CAN总线 C 节点发送,B 节点接收简化后的逻辑框图如下图。 总线上 A B C 三个节点,按照CAN总线规定,首尾 A B 两个节点处需要接入1个120Ω的终端电阻,如下图:…
1、CMSIS_V1和CMSIS_V2版本主要的区别在于,CMSIS_V2兼容支持的硬件更多,内存耗费更多;对于常见的Cortex-M3、M4、M7芯片,选择V1即可。 2、创建任务
Task and Quenes: 任务与队列的创建。Timers and Semaphores&#x…
Arm Cortex M 微控制器 STM32F4 通过 FreeRTOS 和 Mbed OS 实现的实时操作系统,使用了 C 语言(微控制器的“编程”语言)、C语言和 MicroPython(允许在微控制器上使用 Python 语言)数字控制吸尘器。
STM32F4微控制器
…
既然是延时列表,那肯定要先定义相应的链表,延时列表的定义如下。这里定义了两条延时列表(其实就是前面小节里面提到的链表的根节点),一条是准备当记录 S y s t i c k Systick Systick周期个数的变量 x T i c k C o u n…
NTC(Negative Temperature Coefficient)是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料。该材料是利用锰、铜、硅、钴、铁、镍、锌等两种或两种以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体陶瓷,可制…
工作遇到的问题记录
无人机CAN2整个进不了中断,通过查看寄存器判定出CAN节点进入了bus off mode 为何进入bus off ,最后通过示波器看到整个CAN2总线波形就不对,总线出现了错误 Busoff的产生是一定是因为节点自身识别到自己发送错误ÿ…
一、知识点
编码器 两相编码器(正交编码器):两相编码器由 A 相和 B 相组成,相位差为 90 度。当旋转方向为顺时针时,A 相先变化,然后 B 相变化;当旋转方向为逆时针时,B 相先变化…
STM32三种烧录方式
ISP:In System Programming(在系统编程) 执行芯片厂商的BootLoader程序进入ISP模式,进入ISP模式后,用户可选择官方提供的烧录通信接口(如:串口),并配…
蓝桥杯嵌入式第12届真题(完成) STM32G431
题目 程序
main.c
/* USER CODE BEGIN Header */
/********************************************************************************* file : main.c* brief : Main program body**************************…
我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验,核心板如图: 1.建立新工程,选择相应的芯片型号及debug引脚及调试器 2.打开cubemux,设置外部时钟及串口外设…
【stm32】hal库-双通道ADC采集
CubeMX图形化配置 程序编写
/* USER CODE BEGIN PV */
#define BATCH_DATA_LEN 1
uint32_t dmaDataBuffer[BATCH_DATA_LEN];
/* USER CODE END PV *//* USER CODE BEGIN 2 */lcd_init();lcd_show_str(10, 10, 24, "Demo14_4:ADC1 ADC2 S…
蓝桥杯嵌入式第七届真题(完成) STM32G431
题目 相关文件
main.c
/* USER CODE BEGIN Header */
/********************************************************************************* file : main.c* brief : Main program body**********************…
蓝桥杯嵌入式第六届真题(完成)STM32G431
题目部分 相关文件
main.c
/* USER CODE BEGIN Header */
/********************************************************************************* file : main.c* brief : Main program b…
STM32 的优势和不足如下: 优势: ① 性能:STM32 采用了 ARM Cortex-M 核,具有高性能、低功耗、低成本等特点,可以满足各种嵌入式系统应用的需求。 ② 生态系统:STM32 具有完善的生态系统,包括各种…
通过参看《STM32H7 参考手册》“2.4 Embedded SRAM”章节知道 The STM32H743/53xx and STM32H750xB 内存特性:
Up to 864 Kbytes of System SRAM 128 Kbytes of data TCM RAM 64 Kbytes of instruction TCM RAM 4 Kbytes of backup SRAM
1.1 TCM SRAM TCM : Tightly-Coupled …
1.SDRAM和SRAM的区别
SRAM不需要刷新电路即能保存它内部存储的数据。而SDRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它…
1.思维导图 个人暂时的学后感,不一定对,没什么东西,为做项目奔波中。。。1.使用ADC采样光敏电阻数值,如何根据这个数值调节LED灯亮度。 while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */adc_val HAL_ADC_GetValue(&a…
main.c测试
uint8_t uart1RxBuf[64]{0};uint8_t Adc1ConvEnd0;
uint8_t Adc2ConvEnd0;int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initial…
STM32自带CPU的温度数据,需要使用ADC去读取。因此在MX创建项目时如图配置: 模块初始化代码如下:
void MX_ADC1_Init(void)
{/* USER CODE BEGIN ADC1_Init 0 *//* USER CODE END ADC1_Init 0 */ADC_ChannelConfTypeDef sConfig {0};/* USER…
RCC外设介绍
RCC是Reset and Clock Control (复位和时钟控制)的缩写,它是STM32内部的一个重要外设,负责管理各种时钟源和时钟分频,以及为各个外设提供时钟使能。RCC模块可以通过寄存器操作或者库函数来配置。 RCC是复位和时钟控制模块&#…
FreeRTOS移植STM32F103开发板HAL库版本:
1:下载FreeRTOS源码
第一步首先去FreeRTOS官网:FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions
下载最新源码。下载下来…
信格勒微电子的芯片产品已通过行业头部大厂导入验证,深受百万终端客户好评。 而且因为 fully compatible. 板子拿来,换个芯片, 性能更好 。MCU 不用改 c code。
SIG7794/SIG7795
4.17SPS to 890SPS ADC with PGA and Reference
Compatib…
What is uC/OS-III?
C/OS-III 的发音为“Micro C O S Three”,这意味着 C/OS-III 是基于 C 语言编写的第三代 小型操作系统,当然这里所说的第三代是相对于 C/OS 的前两个版本 C/OS 和 C/OS-II 而言 的,后面也会介绍这三个版本的差别。C/OS/…
一、使用PWMADC光敏电阻完成光控灯的实验。(根据测得的光敏电阻大小,控制灯的亮度)
代码: /* USER CODE BEGIN 2 */HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_3);//打开定时器的PWM通道3HAL_TIM_PWM_Start(&htim3,TIM_CHANN…
【stm32】DAC输出三角波锯齿波及任意波形
导入DAC.ioc(见上节DAC学习笔记)
DAC输出三角波
CubeMX图形化配置
DAC配置 实现0.1ms定时周期 时钟树配置
程序编写
/* USER CODE BEGIN Includes */
#include "lcd.h"
/* USER CODE END Inc…
CAN是什么?
CAN 是 Controller Area Network 的缩写,中文是控制器局域网路,是 ISO 国际标准化的串行通信协议之一。 CAN:控制器局域网( Controller Area Network)属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络
CAN是由德…
ARM内部寄存器
有R0-R1516个寄存器 R0-R12通用目的寄存器Program status Register:程序状态寄存器 ,用来保存某些状态的值保存:m3/m4架构保存在xPSR,coretex-A7架构保存在CPSR中XPSR是程序状态寄存器
MRS命令:表示Move to Regis…
2023b的matlab,stm32f407芯片,运行内容Using the Analog to Digital Converter Block to Support STMicroelectronics STM32 Processor Based Boards
Using the Analog to Digital Converter Block to Support STMicroelectronics STM32 Processor Base…
一、USB简介 USB(Universal Serial BUS)通用串行总线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在 PC 领域的接口技术。USB 接口支持设备的即插即用和热插拔功能。USB 是在 1994 年底由英特尔、康柏、IBM、…
如果出现“ST-Link USB communication error”ST-Link USB通信错误,则需要启动STM32 ST-LINK Utility,点击【ST-LINK】->【Firmaware】更新固件,然后打开Kei,点击魔术棒->->Debug->Settings,开到出现类似“…
1,提高串口波特率–实测有效果 2,修改log日志–配置文件中修改 3,修改采样频率–simple time 下面是官方给出的说明,可以仔细阅读查看。
Specify the Logging buffer size in bytes. Ensure that the logging buffer size is lar…
OM6650AM是一款超低功耗、同时支持蓝牙5.1协议栈与2.4GHz私有协议的双模无线连接SoC芯片,采用4.0 mm x 4.0 mm QFN32封装,具有丰富的资源,极低的功耗,优异的射频性能,可广泛应用于车载数字钥匙模组、胎压检测、PKE钥匙…
ESP8266与PCA9685通信I2C
Talk is cheap, show you code!
/*** ESP8266与PCA9685通过I2C协议通信* 功能:控制PCA9685上的16个舵机旋转0-180,串口打印舵机id和角度* 说明:本代码没有使用ESP8266自带的I2C,而是pin模拟输…
问题
DMA is not working on STM32H7 devices Ethernet not working on STM32H7x3 关于STM32H743 recv()数据错误的问题分析
H7使用DMA注意事项
注意发送或者接收缓存的字节对齐问题,一般是要求4字节对齐注意DMA和外设是否可访问发送或者接收缓存所在SRAM空间注意…
CAN 通讯实验
CAN 介绍
CAN 总线介绍 CAN 是Controller Area Network 的缩写(以下称为CAN),中文意思是控制器局域网络,是ISO 国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本…
本教程将介绍 STM32 中的基本 CAN 协议。 在这里我们将看到,如何使用 CAN 协议在两个 STM32 板之间进行通信。
CAN协议介绍
我不打算在这里解释每一个小细节,而是只关注一些重要的事情。
CAN(Controlled Area Network)协议是不…
clc
clear
close all
sum0;
H0input("输入垂直距离,单位mm");
L0input("输入水平距离,单位mm");
N0input("输入水平距离,数据个数");
a(1)atan(H0/L0);
b(1)a(1)*180/3.14159
disp(a)
for i2:N0sumsuma(i-1);a(i)atan((i)*H0/L0)-sum;b(i)a(i)*…
在基础实验成功的基础上,对串口的调试方法进行实践。硬件代码顺利完成之后,对日后调试需要用到的printf重定义进行调试,固定在自己的库函数中。
b) 初始化函数定义:
void USART_Configuration(void); //定义串口初始化函数
c) …
🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2022博客之星T…
void lv_100ask_demo_course_2_1_1(void){
static lv_style_t style;lv_style_init(&style);/*Set a background color and a radius*/lv_style_set_radius(&style, 5); //半径lv_style_set_bg_opa(&style, LV_OPA_COVER); //透明度lv_style_set_bg_color(&st…
开启freertos后,想在主函数的while(1)中实现led的翻转,发现无法实现。
int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, …
萌新的STM32学习-8
STM32CubeMX 是由 ST 公司开发的图形化代码自动生成工具,能够快速生成初始化代码, 如配置 GPIO,时钟树,中间件等,使用户专注于业务代码的开发。现在 ST 主推 HAL 库代码, 经典的标准外设…
STM32使用定时器实现微秒(us)级延时 引言前期准备介绍系统时钟定时器时钟 项目项目介绍STM32CubeMX程序 引言
目前开发STM32普遍使用HAL库,但 HAL 库封装的延时函数目前仅支持 ms 级别的延时,日常很多情况下会用到 us 延时&#…
文章目录 openpnp - use STM32 arduino on SchultzController概述笔记官方的起始文档增加arduino第三方开发板库索引地址改好后, 能编译过的工程SchultzController.inoFeeder.hFeeder.cpp再验证一下内存是否够用补充 - 如果是自己做的板子END openpnp - use STM32 arduino on S…
win10/neovim中文输入法切换
1 环境准备
确保有英文输入法Plug ‘Neur1n/neuims’
2 启动
Using the command :IMSToggle.Calling the function neuims#Toggle(), or using a key mapping, e.g.:
nnoremap <silent> <leader>it :call neuims#Toggle()<CR&g…
CPU ARM 是ARM公司开发,包括Coretx-M, Cortex-R 和 Cortex-A Cortex-M: 定位是中低端市场,也就是我们的单片机,也叫微控制器,我们最常用的STM32F103就是Cortex-M3的内核。 Coretx-R: 定位高端实时系统,比如说医疗、工业…
安装keil的时候没有用到这个芯片就没有安装对应的库。重新安装之后遇到的几个坑: 打开keil显示没有这个型号,解决方法是安装对应的库。STM32F103F要安装Keil.STM32F1xx_DFP.2.4.1.pack。 安装完库之后,点击Option for target,查看…
STM32F103C8T6音乐控制器实战教程[1]
USB简单介绍:
"USB"代表通用串行总线(Universal Serial Bus),是一种用于连接计算机及其外部设备的标准接口。USB接口允许各种设备(如打印机、存储设备、键盘、鼠标、摄…
//这个是中断文件/* USER CODE BEGIN Header *//********************************************************************************* file stm32f1xx_it.c* brief Interrupt Service Routines.**********************************************************************…
简介
这是一个 STLINK-V3 STDC14座转2.54mm排针转接板Kicad工程 。STDC14座实际工作中不太方便,所以搞了这个转接板。另外转接版上提供了可选的电源输出功能。 An adapter board for STLINK-V3. It change the STDC14 to 2.54mm pin header.It also provides 5V an…
创建第一个FreeRTOS程序 1、官网源码下载 (1)进入FreeRTOS官网FreeRTOS professional services for application and RTOS development and consulting. FreeRTOS is an Open Source Code RTOS (2)点击下载FreeRTOS 2、处理目录 &…
RTK(工作电压3.3V)使用步骤
基准站(蓝牙 WiFi) 配置基本都在Web端,但配置USB-C的输入输出还是要到u-center Base Station模式
当开关设置为 Base 时,设备将进入 Base Station 模式。这在设备安装到固定位…
1.配置始终时钟参数 >2. 初始化 MX_TIM3_Init();/* USER CODE BEGIN 2 */HAL_TIM_Base_Start_IT(&htim3);> 3.增加回调函数 4 中断服务函数
void TIM3_IRQHandler(void)
{/* USER CODE BEGIN TIM3_IRQn 0 *//* USER CODE END TIM3_IRQn 0 */HAL_TIM_IRQHandler(&…
在 C 语言中,除零运算会导致异常吗? 在 C 语言中,当一个数除以零时,会导致除法运算错误,通常表现为“除以零”错误或被称为“浮点异常”(floating-point exception)。 对于整数除法,…
视频链接
Nor Flash硬件电路设计01_哔哩哔哩_bilibili
NOR FLASH电路设计
1、NOR FLASH介绍
NOR Flash最早是由Intel公司于1988年开发出的。
NOR Flash虽容量小但速度快,最大特点是支持芯片内执行(XIP),即程序可以直接在NOR flash的片内…
文章目录 Windows 时间服务保留Portw32tm 命令配置 Windows 时间服务配置客户端使用两个时间服务器配置客户端自动从域源同步时间检查客户端时间配置使用本地组策略编辑器配置Windows 时间注册表参考推荐阅读 Windows 时间服务 (W32Time) 为 Active Directory 域服务 (AD DS) 管…
准备工作
平台:Windows11(Linux,MAC同理)
编译链(arm-none-eabi-gcc):Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer
下载对应平台工具链并添加到环境变量,…
void sendtoYskj(uint8_t *cameraIp,uint16_t cameraSrcPort,uint16_t cameraDstPort,uint8_t *userName,uint8_t *pwd,uint8_t lineNum,int camNo)//宇视科技 { int flag = 1; int sock = -1,connected; int send_data_len; int recv_data_len; //char str…
原理图: 当按键S1按下PC14接GND,为低电平
CubMX配置: Keil配置:
main函数:
while (1){/* USER CODE END WHILE */OLED_ShowString(32, 0, "hello", 16);if(Function_KEY_S1Check() 1){ OLED_ShowString(16, 2, &quo…
原文链接Supported Hardware | micro-ROS
Supported Hardware
The main targets of micro-ROS are mid-range 32-bits microcontroller families. Usually, the minimum requirements for running micro-ROS in an embedded platform are memory constraints. Since memory u…
我简直难以相信,什么都不用配置,就这么几行代码,就可以blink了
void setup() {// Set up the built-in LED pin as an output:pinMode(PA1, OUTPUT);
}void loop() {digitalWrite(PA1,!digitalRead(PA1));// Turn the LED from off to on, o…
一、CubeMX设置
1、晶振配置(72M) 2、数据配置 超时时间 Tout prv / LSI * rlv (s) 其中prv是预分频器寄存器的值,rlv是重装载寄存器的值,而LSI值默认是40kHz,如下所示。 3、代码实现
int main(){while(1){HAL_IW…
本文主要记录使用CLion开发STM32,并调试相关功能
使用的CLion版本:2023.3.1 CLion嵌入式配置教程:STM32CubeMX项目 |CLion 文档 (jetbrains.com) OpenOCD官网下载:Download OpenOCD for Windows (gnutoolchains.com) GNU ARM工…
简介
PPSTOD是授时信号的一种,用来传递准确的时间信息。
PPS,Pulse Per Second,是每秒一次的脉冲信号,其上升沿表示整秒的时刻。TOD,Time of Day,是时间信息。是跟随在每个PPS信号后的由串口发出的一句报…
STM32 和 ARM 是两个不同的概念,STM32 是一种微控制器产品,而 ARM 是一家处理器架构设计和许可的公司。因此,无法简单地比较它们的强大程度。 STM32 是基于 ARM Cortex-M 核的微控制器产品,具有高性能、低功耗、低成本和易于开发等…
蓝桥杯嵌入式第10届真题(完成) STM32G431
题目 main.c
/* USER CODE BEGIN Header */
/********************************************************************************* file : main.c* brief : Main program body********************************…
bacnet cov机制详细介绍,相关的对象有哪些 COV介绍COV机制如何配置相关参数?如何确定COV通知的发送间隔?BACnet AI模拟量输入COV检测COV机制的特点和适用性COV介绍
BACnet(Building Automation and Control Networks)的COV(Change of Value)机制是一种用于监测和传输对…
第一次用HDC2010用stm32l051单片机读取数据看了2天的datasheet都没看明白,好在在老板的帮助下里面的数据读取出来。之后的工作一个人好在顺利完成。以下记录一下写的代码
/* USER CODE BEGIN Header */
/********************************************************…
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装urequests到Micropython设备二、相关函数使用2.1 发送网络请求2.2 发送一个 HEAD 请求2.3 发送一个 GET 请求2.4 发送一个 POST 请求2.4 发送一个 PUT …
在Windows上交叉编译STM32
Keil 虽然好用,但是是收费的,不想破解怎么办~ 使用交叉编译工具!
交叉编译工具下载
官方交叉编译工具下载连接 下载解压好后将 bin 目录写入 PATH, 使用命令行检测是否安装成功。 Windows 安装 make …