0706_ARM8

练习1:

PWM控制蜂鸣器,风扇,震动马达
pwm.h

#ifndef __UART4_H__
#define  __UART4_H__
#include "stm32mp1xx_gpio.h"
#include "stm32mp1xx_rcc.h"
#include "stm32mp1xx_tim.h"//蜂鸣器 PB6 TIME4_CH1 初始化
void hal_beep_init();//风扇
void hal_fan_init();//马达
void hal_monitor_init();#endif

pwm.c

#include "pwm.h"//蜂鸣器 PB6 TIM4_CH1
void hal_beep_init(){//rcc章节初始化//1.使能gpiob组控制器RCC->MP_AHB4ENSETR |= (0x1<<1);//2.使能tim4组控制器RCC->MP_APB1ENSETR |= (0x1<<2);//gpiob组控制器初始化//1.设置复用功能模式GPIOB->MODER &= (~(0x3<<12));GPIOB->MODER |= (0x2<<12);//2.设置复用功能为tim4_ch1GPIOB->AFRL &= (~(0xf<<24));GPIOB->AFRL |= (0x2<<24);//tim4章节初始化//产生方波 频率1000hz//系统提供时钟源位209mhz//1.设置预分频器TIM4->PSC = 208; //因为时钟频率=fck_psc/(PSC[15:0]+1),所以这里传输208//2.设置自动重载值TIM4->ARR = 1000; //1000//3.设置比较寄存器,控制占空比TIM4->CCR1 = 300;  //300//4.设置输出比较模式TIM4->CCMR1 &= (~(0x7<<4));TIM4->CCMR1 &= (~(0x1<<16));TIM4->CCMR1 |= (0x6<<4);//5.输出比较预加载使能TIM4->CCMR1 |= (0x1<<3);//6.设置通道1配置为输出TIM4->CCMR1 &= (~(0x3<<0));//8.设置起始时低电平TIM4->CCER |= (0x1<<1);//9.使能捕获TIM4->CCER |= (0x1<<0); //10.设置自动重载预加载使能TIM4->CR1 |= (0x1<<7);//11.设置边沿对齐方式TIM4->CR1 &= (~(0x3<<5));//12.设置递减计数TIM4->CR1 |= (0x1<<4);//13.设置计数器使能TIM4->CR1 |= (0x1<<0);}
//风扇
void hal_fan_init(){//rcc章节初始化//1.使能gpioe组控制器RCC->MP_AHB4ENSETR |= (0x1<<4);//2.使能tim1组控制器RCC->MP_APB2ENSETR |= (0x1<<0);//gpioe组控制器初始化//1.设置复用功能模式GPIOE->MODER &= (~(0x3<<18));GPIOE->MODER |= (0x2<<18);//2.设置复用功能为tim1_ch1GPIOE->AFRH &= (~(0xf<<4));GPIOE->AFRH |= (0x1<<4);//tim1章节初始化//产生方波 频率1000hz//系统提供时钟源位209mhz//1.设置预分频器TIM1->PSC = 208; //因为时钟频率=fck_psc/(PSC[15:0]+1),所以这里传输208//2.设置自动重载值TIM1->ARR = 1000; //1000//3.设置比较寄存器,控制占空比TIM1->CCR1 = 500;  //500//4.设置输出比较模式TIM1->CCMR1 &= (~(0x7<<4));TIM1->CCMR1 &= (~(0x1<<16));TIM1->CCMR1 |= (0x6<<4);//5.输出比较预加载使能TIM1->CCMR1 |= (0x1<<3);//6.设置通道1配置为输出TIM1->CCMR1 &= (~(0x3<<0));//14.设置主输出使能TIM1->BDTR |= (0x1<<15);//8.设置起始时低电平TIM1->CCER |= (0x1 << 3);TIM1->CCER |= (0x1<<1);//9.使能捕获TIM1->CCER |= (0x1<<0); //10.设置自动重载预加载使能TIM1->CR1 |= (0x1<<7);//11.设置边沿对齐方式TIM1->CR1 &= (~(0x3<<5));//12.设置递减计数TIM1->CR1 |= (0x1<<4);//13.设置计数器使能TIM1->CR1 |= (0x1<<0);}//马达
void hal_monitor_init(){//rcc章节初始化//1.使能gpiof组控制器RCC->MP_AHB4ENSETR |= (0x1<<5);//2.使能tim16组控制器RCC->MP_APB2ENSETR |= (0x1<<3);//gpiof组控制器初始化//1.设置复用功能模式GPIOF->MODER &= (~(0x3<<12));GPIOF->MODER |= (0x2<<12);//2.设置复用功能为tim1_ch1GPIOF->AFRL &= (~(0xf<<24));GPIOF->AFRL |= (0x1<<24);//tim16章节初始化//产生方波 频率1000hz//系统提供时钟源位209mhz//1.设置预分频器TIM16->PSC = 208; //因为时钟频率=fck_psc/(PSC[15:0]+1),所以这里传输208//2.设置自动重载值TIM16->ARR = 1000; //1000//3.设置比较寄存器,控制占空比TIM16->CCR1 = 500;  //500//4.设置输出比较模式TIM16->CCMR1 &= (~(0x7<<4));TIM16->CCMR1 &= (~(0x1<<16));TIM16->CCMR1 |= (0x6<<4);//5.输出比较预加载使能TIM16->CCMR1 |= (0x1<<3);//6.设置通道1配置为输出TIM16->CCMR1 &= (~(0x3<<0));//7.设置主输出使能TIM16->BDTR |= (0x1<<15);//8.设置起始时低电平TIM16->CCER |= (0x1 << 3);TIM16->CCER |= (0x1<<1);//9.使能捕获TIM16->CCER |= (0x1<<0); //10.设置自动重载预加载使能TIM16->CR1 |= (0x1<<7);//11.设置计数器使能TIM16->CR1 |= (0x1<<0);
}

main.c

#include "pwm.h"int main()
{hal_beep_init();hal_fan_init();hal_monitor_init();while(1){}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/41039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于python的数据分解-趋势-季节性-波动变化

系列文章目录 前言 时间序列数据的分解&#xff0c;一般分为趋势项&#xff0c;季节变化项和随机波动项。可以基于加法或者乘法模型。季节变化呈现出周期变化&#xff0c;因此也叫季节效应(周期&#xff09;。 一、数据分解步骤 &#xff08;1&#xff09;估计时间序列的长期…

仪器校准后出了校准证书后,是不是就代表仪器合格了?

仪器校准是一门技术活&#xff0c;对于从事生产制造的企业而言&#xff0c;是不可或缺的一环&#xff0c;因为这与产品质量密切相关。所以&#xff0c;了解仪器校准的相关知识也变得尤为重要。 在拿到校准证书后&#xff0c;是不是说明仪器合格了&#xff1f;相信不少企业品管人…

指针回顾.

指针的主要作用&#xff1a;提供一种间接访问数据的方法 1.地址:区分不同内存空间的编号 2.指针:指针就是地址,地址就是指针 3.指针变量:存放指针的变量称为指针变量,简称为指针 1.指针的定义 int *p NULL; int *q NULL; char *p NULL; double *p NUL…

PCDN技术如何提高内容分发效率?(贰)

PCDN技术通过以下方式提高内容分发效率: 1.利用用户设备作为分发节点:与传统的 CDN技术主要依赖中心化服务器不同&#xff0c; PCDN技术利用用户的设备作为内容分发的节点。当用户下载内容时&#xff0c;他们的设备也会成为内容分发的一部分&#xff0c;将已下载的内容传递给其…

第34集《大乘起信论》

好&#xff0c;请大家打开《讲义》七十六页&#xff0c; 子三、释双行 前面是把大乘的止跟大乘的观&#xff0c;各别的说明&#xff0c;这个是针对初学的菩萨&#xff0c;应该是这样修学的&#xff1b;这个地方是告诉我们的目标&#xff0c;应该使令自己在操作上最好是能够止…

STL--求交集,并集,差集(set_intersection,set_union,set_difference)

set_intersection(重要) 求两个有序的序列的交集. 函数声明如下: template<class InputIterator1, class InputIterator2, class OutputIterator>OutputIterator set_intersection(InputIterator1 _First1, //容器1开头InputIterator1 _Last1, //容器2结尾(不包含)Inp…

jenkins配置gitee源码地址连接不上

报错信息如下&#xff1a; 网上找了好多都没说具体原因&#xff0c;最后还是看jenkins控制台输出日志发现&#xff1a; ssh命令执行失败&#xff08;git环境有问题&#xff0c;可能插件没安装成功等其他问题&#xff09; 后面发现是jenkins配置git的地方git安装路径错了。新手…

加入新数据预测,基于黏菌优化算法SMA优化SVM支持向量机回归预测(多输入单输出)

加入新数据预测&#xff0c;基于黏菌优化算法SMA优化SVM支持向量机回归预测&#xff08;多输入单输出&#xff09; 1.数据均为Excel数据&#xff0c;直接替换数据就可以运行程序。 2.所有程序都经过验证&#xff0c;保证程序可以运行。 3.具有良好的编程习惯&#xff0c;程序…

cmake find_package 使用笔记

目录 1 find_package2 config mode2.1 搜索的文件名2.2 搜索路径 3 module mode3.1 搜索的文件名3.2 搜索路径 参考 1 find_package 这是官方文档 下面是学习总结&#xff1a; 首先是find_package的作用是什么&#xff1f;引入预编译的库。 find_package有两种模式&#xff1a…

error executing init.py No module name “imp“ ida

在某论坛下了个IDA&#xff0c;打开报错No module name “imp”&#xff0c;这是由于高版本python已经移除了imp&#xff0c;新版使用import importlib。 1、打开文件D:\IDA_Pro_7.7\python\3\ida_idaapi.py 2、替换import imp 为 import importlib。 3、替换IDAPython_LoadPr…

【LInux】从动态库的加载深入理解页表机制

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

【MindSpore学习打卡】应用实践-自然语言处理-基于RNN的情感分类:使用MindSpore实现IMDB影评分类

情感分类是自然语言处理&#xff08;NLP&#xff09;中的一个经典任务&#xff0c;广泛应用于社交媒体分析、市场调研和客户反馈等领域。本篇博客将带领大家使用MindSpore框架&#xff0c;基于RNN&#xff08;循环神经网络&#xff09;实现一个情感分类模型。我们将详细介绍数据…

X86和ARM架构的服务器 的区别

X86和ARM架构的服务器各有其优缺点,并适用于不同的应用场景。 一、X86架构服务器的优缺点及应用场景: 优点: 1. 易于获取和成本较低:X86服务器在市场上品牌和型号众多,价格相对较低,适合中小型企业。 2. 处理能力强大:X86服务器通常具有强大的处理器性能,支持多核心…

CLIP-EBC:通过增强的逐块分类,CLIP能够准确计数

摘要 https://arxiv.org/pdf/2403.09281v1 CLIP&#xff08;Contrastive Language-Image Pretraining&#xff0c;对比语言-图像预训练&#xff09;模型在识别问题中表现出了卓越的性能&#xff0c;如零样本图像分类和对象检测。然而&#xff0c;由于其固有的挑战——即将计数…

Nettyの参数优化简单RPC框架实现

本篇介绍Netty调优&#xff0c;在上篇聊天室的案例中进行改造&#xff0c;手写一个简单的RPC实现。 1、超时时间参数 CONNECT_TIMEOUT_MILLIS 是Netty的超时时间参数&#xff0c;属于客户端SocketChannel的参数&#xff0c;客户端连接时如果一定时间没有连接上&#xff0c;就会…

Spring Cloud 是什么?(Spring Cloud 组件介绍)

什么是 Spring Cloud&#xff1f; Spring Cloud 是微服务系统架构的一站式解决方案&#xff0c;是各个微服务架构落地技术的集合体&#xff0c;让架构师、 开发者在使用微服务理念构建应用系统的时候&#xff0c; 面对各个环节的问题都可以找到相应的组件来处理&#xff0c;比…

二叉树的遍历算法:前序、中序与后序遍历

在数据结构与算法中&#xff0c;二叉树的遍历是基础且重要的操作之一&#xff0c;它允许我们按照某种顺序访问树中的每个节点。常见的二叉树遍历方式有前序遍历&#xff08;Preorder Traversal&#xff09;、中序遍历&#xff08;Inorder Traversal&#xff09;和后序遍历&…

React 19 竞态问题解决

竞态问题/竞态条件 指的是&#xff0c;当我们在交互过程中&#xff0c;由于各种原因导致同一个接口短时间之内连续发送请求&#xff0c;后发送的请求有可能先得到请求结果&#xff0c;从而导致数据渲染出现预期之外的错误。 因为防止重复执行可以有效的解决竞态问题&#xff0…

聊天广场(Vue+WebSocket+SpringBoot)

由于心血来潮想要做个聊天室项目 &#xff0c;但是仔细找了一下相关教程&#xff0c;却发现这么多的WebSocket教程里面&#xff0c;很多都没有介绍详细&#xff0c;代码都有所残缺&#xff0c;所以这次带来一个比较完整得使用WebSocket的项目。 目录 一、效果展示 二、准备工…

html+css+js图片手动轮播

源代码在界面图片后面 轮播演示用的几张图片是Bing上的&#xff0c;直接用的几张图片的URL&#xff0c;谁加载可能需要等一下&#xff0c;现实中替换成自己的图片即可 关注一下点个赞吧&#x1f604; 谢谢大佬 界面图片 源代码 <!DOCTYPE html> <html lang&quo…