- 博客(22)
- 收藏
- 关注
原创 STM32通用定时器比较输出(RGB实验)
RGB彩灯实验:完成按键切换灯颜色(单定时器多通道)图1.RGB LED 模块通过RGB三个引脚的PWM电压输入可以调节三种基色(红蓝绿)的强度从而实现全 彩的混色效果。软件流程。
2024-05-06 20:38:27 617
原创 STM32独立看门狗
看门狗复位:本质递减计数器,这个递减计数器一旦减到0,看门狗就会将程序进行复位。正常工作情况,不会让这个计数器减到0 ->喂狗。
2024-04-29 20:15:40 241 1
原创 STM32基本定时器
基本定时器 TIM6 和 TIM7 包含一个 16 位(0~65535)自动重载计数器,该计数器由可编程预分频器驱动。此类定时器不仅可用作通用定时器以生成时基, 还可以专门用于驱动数模转换器 (DAC)。实际上,此类定时器内部连接到 DAC 并能够通过其触发输出驱动 DAC。这些定时器彼此完全独立,不共享任何资源。预分频器寄存器与自动重载寄存器都有一个阴影部分-------影子寄存器。
2024-04-29 20:01:26 432 1
原创 STM32串口接收中断与空闲中断
需要的中断时就删除屏蔽,不需要时就打开屏蔽。串口存在中断,不用另外写中断初始化。这个软件中使用printf。
2024-04-25 17:44:21 1414 1
原创 STM32软件中断
可以把比较重要或者紧急的代码放在软件中断服务函数里面,不需要等待外部硬件是否出现异常事件,直接通过软件产生中断。保护比较重要的代码不被打断。写在哪个位置就从哪里触发软件中断。
2024-04-25 16:42:54 766 1
原创 STM32外部中断(按键中断)
PA0按键按下时电平由低变高,松手时由高变低;PE2/3/4按键按下时电平由低变高,松手时由高变低,所以PA0用下降沿,PE2/3/4用上升沿。//优先级 占先=1 次级=1 5->01 01。//优先级 占先=1 次级=2 6->01 10。:这几个中断线对应按键的PA0,PE2/3/4。
2024-04-25 16:09:07 1192 1
原创 串口练习(上位机1通过串口与上位机2通信)
上位机1通过串口1收到数据存入一片单片机板子STM32芯片的内存中,再将存好的数据通过串口2发送到另一片单片机板子STM32芯片的内存中,最后该存在第二片板子芯片的数据通过串口1发送到上位机2。
2024-04-24 23:05:45 169
原创 关于串口的理解
USART(通用同步/异步收发器)和UART(通用异步收发器)的区别主要在于USART具有同步和异步两种数据传输模式,而UART仅支持异步数据传输。串口(usart)(串行通信接口)把I/O口接收到的数据通过串口(usart)寄存器放到内存上。div_f是USARTDIV的小数部分,div_m是USARTDIV的整数部分。USART1的接收端和发送端在PA9和PA10的I/O口上。PA8~PA15是高位寄存器用数组表示GPIOA->AFR[1]PA0~PA7是低位寄存器用数组表示GPIOA->AFR[0]
2024-04-22 23:35:37 605
原创 STM32单片机延时函数
该芯片主频为168MHz,1s处理168M条机械指令,1us处理168条机械指令,__NOP();是一个空操作指令,用于在程序中插入一个无操作的指令。168个该指令刚好1us,1s=1000ms=1000000us。
2024-04-20 16:56:24 437
原创 捕获按键方法
按键有按下和回弹两个步骤,所以要弄一个标志位判断按键从按下到回弹的两个步骤为执行一次,防止多个按键同时按下,同时还要消抖以防按键的接触不灵。
2024-04-20 16:47:49 216
原创 嵌入式输入与输出代码的区别
与输出相比输入用的寄存器更少,更重要的是输出是给I/O端口置一和清零,而输入是从I/O口获取高低电平。编写按键的代码用到的是I/O端口的输入寄存器,与输出寄存器有所区别。
2024-04-20 11:41:10 925
原创 关于判断上拉下拉的知识
红外避障模块具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反 射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输 出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围 2~30cm,工作电压为 3.3V- 5V。当电路图没有上下拉电阻时,我们可以看器件的输出端口默认输出高低电平来判断,当输出高电平时,如图一的右图为上拉电阻;当输出低电平时,如图一的左图为下拉电阻。图2. 红外避障模块。
2024-04-19 20:50:06 423 1
原创 练代码 three day
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){ int r, h, s, v; printf("输入圆柱体的半径和高:"); scanf("%d%d", &r, &h); s = 2 * 3.14 * r * h + 2 * 3.14 * r * r; printf("圆柱体的表面积为:%d\n", s); v = 3.14 * r * r * h;...
2021-11-30 21:16:07 402
原创 练代码 three day
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int x, y, s1, s2; printf("分别输入x和y的值:"); scanf("%d%d", &x, &y); s1 = x + y; printf("s1的值为:%d\n", s1); s2 = x - y; printf("s2的值为:%d\n", s2); return...
2021-11-30 20:21:24 66
原创 练代码two day
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int Add(int x, int y){ int z = 0; z = x + y; return z;}int main(){ int num1 = 0; int num2 = 0; scanf("%d%d", &num1, &num2); int sum = Add(num1,num2); prin...
2021-11-25 20:40:53 88
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人