STM32杂记

Azure RTOS ThreadX 移植 STM32H743 Threadx 移植教程和代码包下载 阅读详情

1.推挽输出 适合做一些开关控制,应为推挽输出可以快速的切换0和1,例如继电器,led等
2./sys.h 今天我们来讲讲这个头文件/
#ifndef __SYS_H //头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个
#define __SYS_H
#include “stm32f10x.h”//核内外设访问层Core Peripheral Access Layer(CPAL)的头文件,它定义了许多外设要用到的头文件信息,接下来我们会讲解的。

u8 KEY_Scan(u8 mode)
{	 
	static u8 key_up=1;
	if(mode)key_up=1;  如果mode等于1 那么每次key_up都是1 即上一次的都是低电平 导致每次按下去都是有效的
	if(key_up&&(KEY0==0||KEY1==0||WK_UP==1))//如果不支持连按那么上一次的值与static保留的值有关系
	{
		delay_ms(10);
		key_up=0;
		if(KEY0==0)return KEY0_PRES;
		else if(KEY1==0)return KEY1_PRES;
		else if(WK_UP==1)return WKUP_PRES;
	}else if(KEY0==1&&KEY1==1&&WK_UP==0)key_up=1; 	    
 	return 0;
 	两种情况 一种是支持连续按 意思就是当我这次按了以后他和上次是没有关系的 比如遥控器我连续按了十次就相当于我前进了十个频道
}

在头文件中加入#ifndef或#ifdef等宏定义,是为了防止重复声明。

我们知道,头文件一般是用来声明的,会被其他的源文件和头文件include,当被多个文件include的时候就会造成重复声明。 为了使得只声明一次,引入前面所说的宏定义,一般以文件名大写和_来当宏的名字。

这个宏是给预处理器用的,通常预处理变量用大写,所以这些宏定义都用大写。为了方便,一般将大写的文件名作为预处理器变量,其实在#ifndef后面加什么都都可以,用文件名只是为了好区分。它只是用来定义一个预处理器变量。

stm32 自学笔记 杂记(1-5)(EXTI外部中断) EXTI可以检测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断申请程序。中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回。 阅读详情

相关推荐

STM32H7 Azure RTOS ThreadX

STM32H7 是意法半导体(STMicroelectronics)推出的一款高性能微控制器系列,基于 Arm Cortex-M7 内核。它具有丰富的外设和高性能计算能力,适用于各种应用领域。Azure RTOS(原名 ThreadX)是一款实时操作系统(RTOS),是 Azure IoT 解决方案的一部分。它是一个可裁剪、可扩展的嵌入式操作系统,适用于各种资源受限的设备。

小灰灰的博客 1607

STM32拥抱Azure RTOS,会放弃FreeRTOS吗?

关注+星标公众号,不错过精彩内容作者| strongerHuang公众号 | strongerHuang用过STM32CubeMX(或者STM32CubeIDE)开发STM32的读者应该都知道,他们支持一键生成包含FreeRTOS操作系统的代码,省去了繁杂的移植过程。早期,由于FreeRTOS免费开源,很多嵌入式软件工程师都拥抱FreeRTOS,STM32官方也不例外,...

strongerHuang 814

X-CUBE-AZRTOS-H7(用于STM32Cube的Azure RTOS软件扩展)在STM32Cube环境中为STM32H7系列微控制器提供了Microsoft Azure RTOS的完全集成。-C/C++开发

用于STM32Cube的X-CUBE-AZRTOS-H7 Azure RTOS软件扩展借助Azure RTOS补充了广泛的STM32Cube生态系统,从而提供了免费的开发人员。 STM32用户还可以利用软件砖和软件扩展包来利用Azure RTOS的丰富服务,这些服务可以满足小型,智能,互联设备的需求。 X-CUBE-AZRTOS-H7(适用于STM32Cube的Azure RTOS软件扩展)在STM32Cube环境中为Microsoft的STM32H7系列提供了Microsoft Azure RTOS的完全集成。

STM32Cube Azure RTOS 软件扩展常见问题解决方案

STM32Cube Azure RTOS 软件扩展常见问题解决方案 1. 项目基础介绍 本项目是STMicroelectronics提供的STM32Cube Azure RTOS软件扩展包,旨在为STM32H7系列微控制器提供一个完整的Microsoft Azure RTOS集成环境。它允许STM32用户利用Azure RTOS丰富的服务,满足小型、智能、连接设备的需求。该软件包包含了以下Azur...

gitblog_01016的博客 1153

实战指南:在摩尔线程GPU上部署AI模型的完整流程

本文提供了一份详尽的实战指南,手把手教你如何在摩尔线程GPU上成功部署AI模型。内容涵盖从驱动安装、Docker环境配置,到核心的代码适配与模型运行全流程,并分享了性能调优技巧与常见避坑方法,旨在帮助开发者高效利用国产硬件进行AI应用开发。

weixin_29271263的博客 546

基于树莓派与ROS的桌面机器人开发:从硬件组装到AI集成实战

嵌入式系统与机器人操作系统(ROS)是构建智能硬件的核心技术基础。嵌入式系统为设备提供了专用计算与控制能力,而ROS作为机器人开发的中间件框架,通过节点、话题和服务等机制,实现了感知、决策、执行等模块间的松耦合通信与高效集成。这种架构极大地提升了机器人系统的可扩展性与可维护性,其技术价值在于能够将复杂的AI算法,如计算机视觉和语音识别,与实体硬件执行机构无缝结合,从而快速构建出具备环境交互能力的智能体。在桌面机器人、教育套件及服务机器人原型开发等应用场景中,该技术栈尤为适用。本文以开源的Wall-E桌面机器

weixin_26775679的博客 653

STM32后缀及选型杂记

举例:STM32  F  103  C  8  T  6"F"那一位指的是产品类型,现在似乎只有通用型即"F""103"那位指的是产品子系列,101= 基本型,102 = USB基本型、USB 2.0全速设备,103 = 增强型,105或107 = 互联型"C"那位指的是引脚数目,T=36脚,C=48脚,R=64脚,V=100脚,Z = 144脚"8"那位指的是FLASH的大小,4=16K,6=3...

动感小麦兜的博客 5902

巨详细Java JDK环境配置(Mac 版)

本篇最详细保姆级教程Mac OS上安装JDK以及配置环境细化每个步骤过程认真看完。

EverythingDone的博客 1万+

关于STM32的一些杂记

一、STM32 & STM8产品型号的命名规则二、STM32编译之后MDK中软件编译完成之后,可以在输出窗口看到Code是代码占用的空间,程序中所有的函数都放在这里;RO-data是 Read Only 只读常量的大小,程序中所定义的全局变量数据和字符串都放在这里;RW-data是(Read Write)初始化了的可读写变量的大小,程序中定义并且初始化的全局变量和静态变量都放在这里ZI-d...

M2嵌入式 483

保姆级教程:在K230开发板上为张大头步进电机实现位置、速度、回零全功能控制

本文提供了一份详细的K230开发板与张大头步进电机的控制教程,涵盖硬件连接、协议解析、模块化代码实现及实战案例。通过位置、速度和回零功能的全面讲解,帮助开发者快速掌握步进电机的高级控制技术,适用于自动化、机器人等应用场景。

weixin_42629671的博客 713

WSL2下用QEMU模拟ARM开发板:从编译uboot到调试全流程(附常见错误解决)

本文详细介绍了在WSL2环境下使用QEMU模拟ARM开发板的完整流程,包括uboot编译、内核调试等关键步骤。通过QEMU模拟vexpress-a9开发板,开发者可以高效搭建嵌入式开发环境,解决常见错误并提升开发效率。

solidity8miner的博客 286

杂记:STM32下载后不运行

另外,​​栈溢出不一定会死机,比如栈只生长到堆区,或者稍微进入变量区,而且溢出整个过程不对这些区域做写入操作,不对这些区域做取指操作,就可以完美避免hardfault,但溢出还是溢出了,数据还是被修改了.最"直接"的表现是函数调用后,还没看到执行用户代码就发现某些不相干的数据被修改,不过这也足够隐蔽了. 而且,hardfault也不一定是栈溢出的直接结果,只是入栈后数据被修改,出栈时跳转错误(最容易出现),导致指令访问错误,或者数据访问错误。我曾尝试单纯的修改栈或者单纯的修改堆的大小但是程序还都是不运行。

qq_22560021的博客 2014

UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 0-4: ordinal not in range(128)

python3报错处理:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-4: ordinal not in range(128) 一、报错场景 // 报错代码 Traceback (most recent call last): File "test_autoo3_2.py", line 214, in <module> main() File "test_autoo3_2.py",

浪里小飞侠的博客 4201

stm32内存杂记

AREA伪代码:表示声明一个代码或数据段,NOINIT表示数据段是未初始化的或初始化为零。其只包含零初始化的空间保留命令 SPACE 或 DCB、DCD、DCDU、DCQ、DCQU、DCW 或 DCWU。可以决定在链接时 AREA 是未初始化的还是零初始化的(请参阅RealView 编译工具 2.0 版链接程序和实用程序指南 中的链接程序 一章)。——heap_limit 表示堆的结束地址。heap_men 表示这个命令的地址,即堆的起始地址。———heap_base 表示堆的起始地址。

m0_54797575的博客 315

使用VNC可视化Docker容器

Docker容器可视化

Robert_Q的博客 1万+

操作系统|知识梳理|复习(下)

操作系统复习

知识库搭建ing 1786

杂记:STM32 调试信息打印实现方式

STM32 调试信息打印实现的几种方式

qq_22560021的博客 3852

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

STM32CubeMX----杂记

(1)在使用FSMC作为LCD接口时,同时ENABLE了FreeRTOS,发现生成的工程文件,编译之后会出问题。 研究后发现问题出在“FreeRTOSConfig.h”这段代码: /* Cortex-M specific definitions. */ #ifdef __NVIC_PRIO_BITS /* __BVIC_PRIO_BITS w...

a3748622的博客 2473

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

STM32自学记录(一)

单片机自学预热

bingzhua的博客 539

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

STM32学习杂记(1)

野火的《零死角玩转STM32》里面的“流水灯的前世今生”中,三个LED灯都是连接在一个端口GPIOC的,但是我买的单片机开发板是一个在GPIOA 一个在GPIOD 野火的LED.c的代码是 在控制引脚的那行代码 1: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GP...

weixin_30532759的博客 105

STM32----杂记

1、开启引脚复用,引脚外部中断时,需要开启 RCC_APB2Periph_AFIO。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //只在此处开启时钟可顺利初始化外部中断 GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource12); //不配置无法启用外部中...

a3748622的博客 1253

初出茅庐的小李第50篇博客之STM32中断函数杂记

STM32 15-10线的外部中断共用一个中断函数,怎么在该函数里查询是哪个中断线产生了中断呢? 使用 EXTI_GetITStatus()来查询哪根线产生了中断。比如EXTI_GetITStatus(EXTI_Line13)就是查询13线是否产生了中断的。 你在设置中断引脚的时候是不能把PB1和PD1同时设置为中断源的 如果非要设置,后面设置的会把前面的覆盖掉的。 //编写中断服务函数经常需要使用两个函数。 第一个是判断某个中断线上的中断是否发生(即标志位是否置位): ITStatus EXTI_Get

初出茅庐的小李 748

STM32杂记之单片机复位状态

设备从重置启动后,需要做的步骤。

scl8295的博客 1139

【STM32】FreeRTOS踩坑【杂记】

【代码】【STM32】FreeRTOS踩坑【杂记】

stephenbruce的博客 714

stm32 自学杂记(1-8)(名词解释)

STM32 TRC提供了多种Trace功能,包括ITM(Instrumentation Trace Macrocell)和DWT(Data Watchpoint and Trace)等。DWT是一种用于跟踪指令执行和数据访问的技术,可以记录指令执行的周期数、中断和异常的发生时间等信息。CCR(Condition Code Register):捕获/比较寄存器(用于定时和计数器模块)CC( Capture Compare ):输入捕获和输出比较单元。CK_CNT:计数器计数频率(用于定时周期的计算)

weixin_72633534的博客 805
上一篇: 2018数学建模国赛B题
下一篇: 神经网络
Azuresmh
博客等级 码龄9年 176粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值