- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 Keil MDK 5.14.0 Debug仿真时System Viewer菜单显示空白和Peripherals菜单无内容
嵌入式开发–Keil MDK仿真时System Viewer不显示寄存器选项](Keil MDK 5.14Debug仿真时System Viewer菜单显示空白和Peripherals菜单无外设寄存器的解决办法)注意: 在没有打开debug的时候,是没办法看到Peripherals 的内容的,只有进入调试的时候才能看到。如果你进入调试模式也无法看到,说明有你的配置没弄好。无法在菜单栏查看外设寄存器。路径下选择你的芯片型号。
2024-03-27 14:11:50 110
原创 C语言 指针综合应用 ( 高阶应用 )
下面代码主要使用指针实现一个,图书馆管理系统的应用代码。结构体指针、函数指针数组、数组指针、函数指针、结构体指针数组,还有枚举、类型定义、宏定义主打一个为了使用指针而使用指针。
2024-03-24 17:12:24 330
原创 C语言 数组指针 & 指针数组
(p+1)单独使用时表示的是第 1 行数据,放在表达式中会被转换为第 1 行数据的首地址,也就是第 1 行第 0 个元素的地址,因为使用整行数据没有实际的含义,编译器遇到这种情况都会转换为指向该行第 0 个元素的指针;每一个一维数组又包含了 4 个元素,例如 arr[0] 包含 a[0][0]、a[0][1]、a[0][2]、a[0][3]。[]的优先级高于*,()是必须要加的,如果赤裸裸地写作int *p[4],那么应该理解为int *(p[4]),p 就成了一个指针数组,而不是二维数组指针。
2024-03-24 14:55:18 872
原创 C语言一级指针、二级指针(看这篇就够了)
从上面代码我们看出来,一开始我们的ptr指针,指向的数据是num1的地址,但是现在如果我想要他指向num2,则我就必须把num2的地址赋值给ptr,而函数内部,如果你想修改外部的指针的指向。结果好家伙,你倒好,你到了小明家,把人家东西偷了,最后被抓了,你还说是我指示你这么干的。在单片机内部,用不同的数据类型,每个数据类型占用的内存空间不尽相同,当我们在执行函数的时候,学过C语言的都知道,这个时候,你可能会想,那不久完事了,我的目的达到了,我改变了ptr的指向,以后你想要获取新指向的内存空间的数据。
2024-03-22 18:14:47 926
转载 sscanf函数使用详解(转载)
上面的格式中,[0-9]表示这是一个仅包含0-9这几个字符的字符串,前面使用数字31修饰词表示这个字符串缓冲区的最大长度(这也是sscanf最为人诟病的地方,很容易出现缓冲区溢出错误,实际上sscanf是可以避免出现缓冲区溢出的,只要在书写任何字符串解析的格式时,注意加上其缓冲区尺寸的限制)。"%04d%02d%02d"是用来解析字符串的格式,%表示格式转换的开始,d表示转换为一个整数,04作为d的修饰,表示这是一个长度为4位的整数,不足4位时以0补齐。其后是一序列数目不定的指针参数,存储解析后的数据.
2024-03-21 17:10:14 8
原创 315/433Mhz无线信号
这20位地址码已经由芯片厂商事先烧录好,也就是做片子的时候就写好了,你买到手里的芯片都有一个不同的地址码,2^20=1048576,一百多万个。由于315MHz和433MHz的波长较长,它们都具有较好的穿透能力,可以穿过一些障碍物如墙壁、建筑物等,实现远距离传输。然而,并非所有的RF芯片都能同时支持这两种频率,一些设计可能会做出牺牲以获得更好的性能或适应特定的应用场景。433MHz:工作频率稍高,主要用于遥控器、无线门铃等场景,同样具有较好的穿透能力,但在一些情况下可能受到一些干扰。
2024-03-15 00:09:54 903
原创 C语言-设计模式
在这个示例中,我们使用了AVR单片机的外部中断0(INT0)来模拟按钮的按下事件,当按钮按下时,硬件会自动触发INT0中断,并执行INT0中断服务程序(ISR)。在主程序中,我们根据当前状态执行相应的操作,例如在等待玩家输入状态下等待按钮按下,而在游戏进行中状态下执行游戏逻辑。在单片机开发中,观察者模式通常用于实现事件驱动的系统,其中多个模块或组件可以注册为观察者,以便在事件发生时接收通知并执行相应的操作。在这个示例中,我们定义了三种设备类型:灯、风扇和空调,并实现了对应的打开和关闭命令执行函数。
2024-03-14 16:11:30 962
原创 C语言-回调函数的应用
回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++、Python、ECMAScript等更现代的编程语言中还可以使用仿函数或匿名函数。
2024-03-14 14:29:01 341
原创 Github使用技巧
xxx tutorial ( 搜索教程 )xxx awesome ( 搜索汇总 )xxx sample (搜索例程)xxx 表示搜索的关键词。
2024-03-10 16:34:18 196
原创 C语言bool类型
在C99开始引入了布尔类型,但是他并不是C语言内置的数据类型。而是C语言通过 帮我们实现了对布尔类型数据的判定。(2)bool 为非0[数字0] 其余既1的特性 (这里的0和1都表示正负数数字类型)在C语言标准(c89)并未定义布尔类型,判断数据为0 = 假,非0 = true。(1)stdbool宏定义了 true = 1,false = 0。
2024-03-10 16:02:25 384
原创 C语言-环形缓冲队列
可以使用环形缓冲区实现,把接收到的数据放入环形缓冲队列,然后需要需要用到数据的时候,从队列中依次读取即可。这样可以在一定程度上,防止数据的丢失。在单片机相关的开发中,有时候会遇到,读取的速度慢与接收的速度,导致通讯数据丢失或者说不连续的情况、比如单片机的串口通讯。
2024-03-10 14:24:25 352
原创 STM32与W25Q64通讯(SPI)
SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master同步,全双工支持总线挂载多设备(一主多从)W25Qxx系列是一种低成本、小型化、使用简单的非易失性存储器,常应用于数据存储、字库存储、固件程序存储等场景存储介质:Nor Flash(闪存)
2024-02-23 22:56:11 953 1
原创 STM32F407 IIC通信协议驱动代码
IIc总线是单片机与外部模块进行通讯常用的协议,由两根线组成,分别是SCL,SDA组成,主机驱动SCL时钟信号的发生,在SCL的时钟脉冲下,通过SDA的时序,即可与外部模块通讯。IIC(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。IIC是为了低速设备通信而发明、V(IIC) < V ( spi )
2024-02-22 17:09:13 343
原创 stm32f407与dht11通信,读取温湿度数据
stm32单片机要通过dht11模块,获取温湿度数据,改模块支持单总线通信,使用一根数据线,按照模块厂商规定通信时序,即可获取是温湿度数据,我们打算2s 采集一次温湿度数据,然后通过串口输出到上位机。
2024-02-21 16:35:40 413
原创 UCOS-II 在单片机中的应用
假设我们正在开发一个智能家居控制系统,该系统需要同时处理多个任务,如温度监控、照明控制和安全检测。在这个系统中,μC/OS-II的多任务处理能力可以帮助我们高效地管理这些不同的功能。
2024-01-20 16:49:43 895
原创 STM32系统时钟树
stm32 单片机的时钟比较复杂,不过通过主线一步步拆解,就可以学会它。系统的时钟源,第一个源头无非就是的(1)MCU内部高速时钟源HSI(2)外部高速时钟源HSI(3)PLLCLK ( 由HSI\HSI 通过PLL倍频得来 ) 【目的:是用于对HSI / HSE 进行倍频】上述3个时钟源选择其一作为 ( SYSCLK 系统时钟 )紧接着就是通过AHB Prescaler 对SYSCLK系统时钟进行预分频( /2 ~ /512 ) 操作,得到 HCLK AHB1( 高速时钟 )
2024-01-18 14:27:18 973
原创 前端javascript常见问题总结
一、javscript部分1.如何判断一个对象是否为空对象?方法1:let obj1 = {}let obj2 = {a:1}function empty(obj){ for (let key in obj){ return false; //非空} return true; //为空}console.log(empty(obj1)) //true为空console.log(empty(obj2)) //false非空方法2let obj1
2022-02-27 17:02:41 707
原创 如何快速搭建一个vue项目
如何搭建一个vue项目一、安装node环境二、搭建vue环境三、vue项目目录讲解四、解决vue不能自动打开浏览器的问题一、安装node环境1、 下载地址:https://nodejs.org/en/2、 检查是否安装成功:node -v如果输出版本号,说明我们安装node环境成功3、 可以使用淘宝的镜像:http://npm.taobao.org/命令:npm install -g cnpm –registry=https://registry.npm.taobao.org即可
2022-02-27 13:16:41 705
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人