- 博客(17)
- 收藏
- 关注
原创 STM32_ADC扫描模式
/#4.2配置注入序列的通道信息(写到计划表的哪几行,采样时间)//#2.读取转换的结果(读取JDR寄存器中的值)//#3.将读取到的二进制结果再转换为电压值。//#4.将转换后的结果通过串口发送出去。//#4.4 闭合注入序列外部触发开关。//#3.闭合USART模块的总开关。//#2.初始化USART1模块。//#3.初始化ADC1基本参数。//#4.配置注入序列的额外参数。//#4.闭合TIM1的总开关。//#4.1配置注入序列的长度。//#1.开启定时器1的时钟。//#2.配置ADC的时钟。
2026-01-12 17:56:09
374
原创 STM32定时器-PWM参数测量实验
/#2.1 初始化PA6 AF_PP(通过CH1输出)//#1.初始化IO引脚 PA9 AF_PP。//#1.4 闭合时基单元的总开关。//#2.4 开启CCRx的预加载。//#1.4 闭合时基单元的总开关。//#2.2 初始化输入捕获通道1。//#2.初始化USART1模块。//#1.1 开启TIM3的时钟。//#1.2 配置时基单元的参数。//#1.3 开启ARR的预加载。//#2.初始化输出比较的通道1。//#1.1 开启TIM1的时钟。//#1.3 开启ARR的预加载。
2026-01-06 15:49:21
289
原创 STM32-定时器超声波测距实验
/#2.1 初始化IO引脚 PA8 IPD输入下拉。//#3. 初始化Trig引脚 PA0 Out_PP。//#4.向Trig引脚发送10us的脉冲。//#2.2 初始化USART1的参数。//#2.1 开启USART1的时钟。//#2.2 初始化输入捕获通道1。//#2.3 初始化输入捕获通道2。//#3.开启定时器开关。//#6.关闭定时器开关。//#1.对CNT清零。//#7.计算测量距离。//计算ccr1的值。//#2.初始化USART1。//#1.初始化IO引脚。//#2.3 闭合总开关。
2025-12-31 09:57:49
441
原创 STM32定时器呼吸灯实验
/#2.3 配置ARR寄存器的预加载。//#3.1 初始化输出通道1的参数。//#3.3 配置CCR的预加载。//#2.1 开启定时器的时钟。//#2.2 初始化时基单元。//#3.配置输出比较的参数。//#3.2 闭合MOE开关。//#1.初始化IO引脚。//#2.4 闭合总开关。//#2.配置时基单元。
2025-12-29 15:35:46
401
原创 STM32定时器-自制延迟函数
/记录单片机当前的时间,单位是ms。//延迟一段时间,参数是要延迟的时间,单位ms。//#2.配置时基单元的参数。//#3.闭合时基单元的开关。//#1.开启定时器的时钟。//一、获取单片机当前时间。//五、编写中断响应函数。//三、初始化时基单元。//二、实现延迟函数。
2025-12-24 17:01:43
270
原创 STM32-时钟树编程
将时钟树从左边的初始状态变为右边的状态#include "stm32f10x.h"void APP_SystemClock_Init(void);int main(void){ APP_SystemClock_Init(); //初始化LED RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct
2025-12-22 19:48:28
288
原创 STM32-EXTI按钮实验
/#2.为EXTI5与EXTI6分配引脚。//#1.初始化PA5与PA6。//#3.初始化EXTI线。//编写中断响应函数。
2025-12-19 11:15:28
252
原创 STM32-串口中断编程实验
if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE)== SET){//确保中断是由RXNE标志位触发的。//Tx引脚 PA9 AF_PP。//#4.配置NVIC。//#1.引脚初始化。
2025-12-17 15:01:53
244
原创 STM32-W25Q64实验
/若不发第一个字节,RDR中无数据可读,也无法开始接收数据。//Byte提供了要写入的数据。//发送字节(先等待TxE,再循环,直至发到第i+1个字节)//接收字节(先等待RxNE,再循环,直至接收到第i个字节)//判断BUSY标志位是否为0,0代表空闲,则跳出循环。//判断BUSY标志位是否为0,0代表空闲,则跳出循环。//主机发0x02 + 24位地址 + 要发的数据。//主机发0x03 + 24位地址,然后读取数据。//主机先发送0x05,然后再接收一个字节。//主机发0x03 + 24位地址。
2025-12-15 17:16:53
798
原创 STM32-SPI数据发送/接收代码
/向NSS引脚输入1,接到高电压防止主机被当作从机。//若不发第一个字节,RDR中无数据可读,也无法开始接收数据。//发送字节(先等待TxE,再循环,直至发到第i+1个字节)//接收字节(先等待RxNE,再循环,直至接收到第i个字节)//PA15 普通IO Out_PP 2MHz。//#4.接收最后一个字节(第Size-1个)//#2.对SPI本身进行初始化。//#3.循环Size-1次。//#1.初始化IO引脚。//#2.发送第一个字节。//#1.闭合总开关。//#5.断开总开关。
2025-12-12 11:28:17
352
原创 STM32-按钮实验
/初始状态均为按钮松开状态。= current){//前后值不相同才表示LED状态改变。if(current == Bit_SET){//按钮松开,LED亮灭状态改变。实验现象:在按钮按下时保持LED状态不变,按钮松开时改变LED的亮灭状态。//改变LED,首先读取当前LED的值。else{//按钮按下,LED亮灭状态不变。Delay(10);
2025-12-10 15:11:17
366
原创 软件实现I2C数据发送/接收
/先执行SendByte(pData[i]),把 pData[i](数组第i个字节)发送给 I2C 从机,然后判断SendByte函数的返回值(即从机发送的ACK/NAK信号)//Addr & 0xfe是配置R/W位为write,然后判断SendByte函数的返回值(即从机发送的ACK/NAK信号),是0就表示寻址成功。//SendByte() 的返回值 = 接收从机发回的 ACK/NAK 信号。//向SDA写0或写1。}//要发送的第i位为1,则SDA写1,若第i位为0,则SDA写0。
2025-11-21 16:17:13
497
原创 STM32-I2C数据发送代码
int My_I2C_SendBytes(I2C_TypeDef *I2Cx,//I2C接口的名称。//闭合总开关,使能I2C。
2025-11-18 19:36:09
439
原创 STM32-串口发送代码
void MY_USART_SendBytes(USART_TypeDef *USARTx, uint8_t *pData, uint16_t Size)//函数定义。//打开GPIOA的时钟。
2025-11-10 20:26:18
442
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅