MCU开发
文章平均质量分 66
MCU级别芯片的开发
宇努力学习
学习想学的一切
展开
-
STM32——中断优先级分组
一、SCB-AIRCR寄存器首先,对STM32中断进行分组,0——4.同时,每个中断设置一个抢占优先级和一个响应优先级。1、 高抢占可以打断正在执行的低抢占2、 抢占相等,高响应不能打断低响应3 抢占相等,两个中断同时发生,高响应先执行4、 抢占和响应都相等,先来先执行注意:中断优先级分组一般只进行一次。随意改变会产生意想不到的执行结果。二、中断优先级分组函数void NVIC_PriorityGroupConfig(nint32_t NVIC_PriorityGro...原创 2022-03-20 18:16:26 · 10159 阅读 · 0 评论 -
32单片机——中断按键
网课地址:https://www.bilibili.com/video/BV1sJ411w7WY?p=25原创 2022-03-13 16:17:38 · 154 阅读 · 0 评论 -
STM32——UART
1、处理器与外设的通信方式(1)串行通信多位同时传输,浪费资源,但传输速度快三种传输方式:单工、半双工、全双工。通信方式同步通信:带时钟同步信号,如SPI、IIC。异步通信:不带时钟同步信号,如UART(通用异步收发器)、单总线。常见串行通信接口UART:UART_百度百科单总线:单总线_百度百科SPI:SPI(SPI协议)_百度百科I²C:IIC(Inter-Integrated Circuit(集成电路总线))_百度百科异步通信的引脚连接方法原创 2022-03-27 19:05:02 · 468 阅读 · 0 评论 -
stm32-直流电机专题一
一些做PWM驱动直流电机时的心得和问题。原创 2022-06-18 10:49:54 · 306 阅读 · 0 评论 -
STM32——独立看门狗
一、独立看门狗概述由专用低速时钟驱动,即便主时钟故障仍然有效。独立于主程序外,适用于对时间精度要求低的场景。二、独立看门狗库函数三、独立看门狗操作步骤四、具体程序(1)iwdg.c#include "iwdg.h"void IWDG_Config(uint8_t prv ,uint16_t rlv){ //对应五步 IWDG_WriteAccessCmd( IWDG_WriteAccess_Enable ); IWDG_SetPrescal...原创 2022-04-07 22:11:46 · 825 阅读 · 0 评论 -
32单片机——GPIO初始化结构体
13种输出模式typedef struct{ uint32_tPin; //GPIO引脚编号选择 uint32_tMode; //GPIO引脚工作模式 uint32_tPull; //GPIO引脚上拉、下拉配置 uint32_tSpeed; //GPIO引脚最大输出速度}GPIO_InitTypeDef;Pin:引脚编号选择,一个GPIO有16个引脚可选,GPIO_PIN_0、···、GPIO_PIN_15和GPIO_PIN_ALL。可使用或运算选择多个。Mode:引脚工作模式选择,..原创 2022-03-07 15:25:46 · 1193 阅读 · 0 评论 -
Keil报错总结(1)
一、newline expected,extra characters found(c323)头文件定义有问题#ifndef #define #endif他们后面的文件名与文件名不一致,或者大小写不一致,文件名尽量避免( . )因为( . )需要写成_代表文件类型,可是文件名中的点不好界定,所以尽量避免使用。二、error C267:'文件名':requires ANSI-style prototype一般是#ifndef #define #endif这些操作后面的文件名没有大写,把文件原创 2022-05-01 16:00:44 · 9432 阅读 · 0 评论 -
STM32——利用串口实现LED1的亮灭
要实现接收串口字符串信息就要进行数据对比,本来使用的是for循环#include <stdio.h>int main(){ char str[256]; scanf("%s",str); int a,b,c; for(int m=0;m<=254;m++) { if(str[m]=='L'&str[m+1]=='E'&str[m+2]=='D') return printf("LED亮"); } }特意在devC++上测试了原创 2022-04-03 14:48:54 · 2561 阅读 · 1 评论 -
32单片机——跑马灯
代码用于正点原子的板子,如有需要自行更改。固件库版本3.5,基于MDK5进行开发。一、初始化led.c#include "led.h"#include "stm32f10x.h"void LED_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//GPIOB使能 RCC_APB2PeriphClockCmd(RCC_APB2P原创 2022-02-08 12:14:38 · 953 阅读 · 0 评论 -
32单片机——蜂鸣器
beep.c#include "sys.h"#include "delay.h"#include "beep.h"int main(void){ delay_init();//初始化延时函数 BEEP_Init();//初始化蜂鸣器端口 while(1) { BEEP=0; delay_ms(300);//延时300毫秒 BEEP=1; delay_ms(300); }}beep.h#ifndef __BEEP_H#define __BEEP_H#i原创 2022-02-17 13:49:37 · 791 阅读 · 0 评论 -
STM32F051——USART
借助一款M0系列的芯片讲讲32的串口原创 2022-12-19 12:53:17 · 1901 阅读 · 0 评论 -
STM32——SDIO的学习(驱动SD卡)(实战篇)
在写程序前在最后了解一下SDIO的寄存器。原创 2023-05-26 19:20:44 · 4077 阅读 · 0 评论 -
STM32——SDIO的学习(驱动SD卡)(理论篇)
多媒体卡)由西门子公司Siemens和SanDisk于1997年推出。由于它的封装技术较为先进,7针引脚,体积小、重量轻、非常符合移动存储的需要。MMC支持1bit模式,20MHz时钟,采用总线结构。MMC卡在SM卡基础上诞生替代了东芝开发的SM卡。不久的几年后,在MMC卡基础上研发的SD卡又替代了MMC卡,成为了几乎一切便携式数码产品的存储卡格式。SD卡结构SD卡是由松下电器东芝和SanDisk联合推出,1999年8月发布。SD卡的数据传送。原创 2023-05-23 16:04:34 · 8420 阅读 · 3 评论 -
基于max30102的物联网病房监测系统(中断处理和主题逻辑)
0 两位数表示温度上限 左高位右低位 温度下限 湿度上限 湿度下限 心率用一位表示 0 1 2 分别为 小孩 成年人 老人 输入其它数值表示是个人就行 两位表示血氧下限 左高右低。//CAL_PPM 10 // 校准环境中PPM值。上面是自主更新,下面是被控制模式,由于服务器童鞋没写远程改上下限功能,我的这部分也被注释掉了。由于接收到的是字符串,所以剪掉字符0变成整数,传多位数据的时候乘10改变位置就行。// 传感器校准函数,根据当前环境PPM值与测得的RS电压值,反推出R0值。模式2接收一共12位。原创 2023-05-05 12:52:53 · 798 阅读 · 1 评论 -
基于max30102的物联网病房监测系统(传感驱动和数据处理)
用的传感器全在这了,很多驱动之前都发过,这个小项目的难点主要是心率血氧传感器。max30102可以再网页端设置温湿度的上下限,心率的范围我查阅了下资料小孩:80 - 140成年人:60 - 100老年人:55 - 75人:40 - 160运动员的心率比较低。但是不能低于40,低于40是一种病下面是报警对应的灯温度 红灯湿度 绿灯MQ2 黄灯心率 红绿。原创 2023-05-05 12:19:41 · 1044 阅读 · 1 评论 -
地铁站人流检测硬件部分
使用STM32C8T6作为主控A9 ---> tx(调试串口)A6 ---> SCK(体重)A7 ---> DOUT(体重)C14 ---> 人体感应B0 ---> key1(进站)B1 ---> key2(出站)用串口一进行打印调试串口二和ESP01s进行通信连接服务器。A6和A7用模拟IIC的方式和HX711通信,采集压力传感器,看看是否有人在上面,配合C14管脚的HC-SR501,当两个条件都满足证明有人经过地铁站的检测门。A4A5是软件IIC和OLED进行通信。原创 2023-04-24 20:54:14 · 673 阅读 · 1 评论 -
NB-IOT的使用
NB-IOT的使用原创 2023-03-25 19:44:29 · 1215 阅读 · 1 评论 -
初识NB-IOT
初识NB-IOT原创 2023-03-25 17:49:09 · 454 阅读 · 0 评论 -
STM32——IIC总线(MPU6050应用)
I2C总线介绍I2C(Inter-Integrated Circuit)总线(也称IIC或I2C)是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,期间封装形式少,通信速率高等优点。IIC总线特点两条总线线路:一条串行数据SDA,一条串行时钟线SCL来完成数据的传输及外围器件的扩展I2C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址。原创 2023-03-25 11:46:34 · 2981 阅读 · 1 评论 -
STM32数据搬运工DMA
DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大为提高。所有通道都支持memory to memory的传输、外设到外设的传输、以及外设和memory之间的传输。每个 DMA 通道都可以在 DMA 传输过半、传输完成和传输错误时产生中断。l 通过设置 DMA_CCRx 寄存器中的 PINC 和 MINC 标志位,外设和存储器的指针在每次传输后可以有选择地完成自动增量。原创 2023-03-24 16:40:43 · 1361 阅读 · 2 评论 -
STM32模数转换器ADC
被转换的通道序列必须在通道选择寄存器 ADC_CHSELR 中编程选择:每个模拟输入通道有专门的一位选择位 (CHSEL0...CHSEL18).优点:不会有时钟域之间的同步带来的抖动,触发事件和转换的起始时刻之间的延迟是确定 的,从 而保证转换之间的时间间隔是固定的。分辨率:ADC的分辨率通常以输出二进制数的位数表示,位数越多,分辨率越高,一般来说分辨率越高,转化时间越长。转化时间:模拟输入电压在允许的最大变化范围内,从转换开始到获得稳定的数字量输出所需要的时间称为转换时间。原创 2023-03-24 12:25:08 · 1189 阅读 · 1 评论 -
F0存储器映射和启动文件分析,使用cubmax创建第一个工程
F0存储器映射和启动文件分析,使用cubmax创建第一个工程原创 2023-03-21 16:21:26 · 468 阅读 · 0 评论 -
Cortex-M0和STM32F0
Cortex-M0和STM32F0原创 2023-03-20 17:00:37 · 1316 阅读 · 0 评论