LPC1768用官方库中用寄存器开启两个硬件PWM
第一次使用LPC芯片。在NXP官网上面下载了官方库函数如下图
但是在使用过程中发现该库很多东西都不齐全,比如说硬件pwm,是的,连这个都没有,然后当我想要移植在网上下载的寄存器硬件PWM列子进去的时候,却发现移植不了。原因是因为寄存器编程使用的头文件LPC17xx.h和官方库文件大量重复导致报错,尝试过注释掉重复的内容,但是结果是报错从30个变成117个。
确实有被气到,因此决定自己在官方库的基础上写寄存器开启PWM。遇到有些坑,比如说官方库只给了PWM的基地址而没有映射出来导致无法调用。。等等,需要自己去查阅芯片手册然后重新给他加上。
最终成功开启两个硬件PWM。很好用。
代码如下:
#include “board.h”
#include “PWM.h”
void PWM_Init()
{
LPC_SYSCTL->PCONP|=(1<<6);//ʹÄÜPWMÍâÉ蹦ÂʼĴæÆ÷
LPC_IOCON->PINSEL[4] = (1<<2)|(1<<4);LPC_PWM1->CTCR=0; //¹¤×÷ÓÚ¶¨Ê±Æ÷ģʽ
LPC_PWM1->PR=0; //Ô¤·ÖƵ±ÈÀýΪ1:5
LPC_PWM1->PC=0;
LPC_PWM1->TC=0;
LPC_PWM1->MR0=2500-1; //ÅäÖÃPWMƵÂÊΪ10kHz pclk/2500-1=10khz
LPC_PWM1->MR2=(LPC_PWM1->MR0+1)(15)/100-1; //ÅäÖÃPWM2.1µÄPWMÕ¼¿Õ±ÈΪ15
LPC_PWM1->MR3=(LPC_PWM1->MR0+1)(15)/100-1; //ÅäÖÃPWM2.2µÄPWMÕ¼¿Õ±ÈΪ15
LPC_PWM1->LER=(1<<2)|(1<<0)|(1<<3); //Ëø´æPWMÖµ²¢Á¢¼´ÉúЧLPC_PWM1->MCR=0x02; //LPC_PWM1->TC¼ÆÊýµ½LPC_PWM1->MR0µÄʱºòTC¸´Î»LPC_PWM1->PCR=(1<<10)|(0<<2)|(1<<11)|(0<<3); //ÅäÖÃPWM1.2Ϊµ¥±ßÊä³ö,²¢Ê¹ÄÜLPC_PWM1->TCR=(1<<3)|(1<<0); //ʹÄÜPWM1¶¨Ê±Æ÷²¢Ê¹ÄÜPWM¹¦ÄÜ
}
/************************************************************************************************
º¯ÊýÃû: void PWM_SET(uint16_t duty )
º¯Êý¹¦ÄÜ:ÉèÖÃÕ¼¿Õ±È
²ÎÊý:duty Õ¼¿Õ±È
·µ»ØÖµ:ÎÞ
*************************************************************************************************/
void PWM_SET(uint16_t duty ){
LPC_PWM1->MR2=(LPC_PWM1->MR0+1)*duty/100-1; //duty¾ÍÊÇÕ¼¿Õ±È
LPC_PWM1->MR3=(LPC_PWM1->MR0+1)*duty/100-1; //ÅäÖÃPWM2.2µÄPWMÕ¼¿Õ±ÈΪ15
LPC_PWM1->LER=(1<<2)|(1<<0)|(1<<3); //Ëø´æPWMÖµ²¢Á¢¼´ÉúЧ
}
有问题的可以联系我
LPC1768用官方库中用寄存器开启两个硬件PWM相关推荐
- LeetCode题库第1题 两数之和
两数之和 LeetCode题库第1题 两数之和 看到题,我就想到了暴力法: public int[] force(int[] nums,int target) {for (int i = 0; i & ...
- linux的进程与库之间的通信两种方式
文章目录 前言 一.进程A与算法库b的通信方式之一:动态dlopen加载算法库b,编译的时候是需要加载该头文件就可以,无需连接该算法库b 具体的实施细节: 二.进程A与算法库b的通信方式之二:进程A编 ...
- 这几个常用的 Go 官方库,性能居然还不如三方开源库
Go 语言官方库给我们一贯的印象是:强大.好用.但是,金无足赤,人无完人,在一些性能要求苛刻的场景例如 json 解析,某些官方库的表现不尽如人意. 本文介绍几个对标官方库的开源库,它们的性能远超前者 ...
- IAR 下根据官方库建立 STM32的工程
目录 1. IARforSTM32工程v0.0版本.... 1 2. IARforSTM32工程v0.1版本.... 6 2.1今天v0.0版本出现了警告.... 6 2.2下载仿真.... 7 2. ...
- 在STM32的官方库切换芯片型号
对象:在STM32F10X的3.5官方库的进行芯片的切换 例子:f103切换成f107 资源吸取自:野火的<[野火®]零死角玩转STM32-F103霸道>.网上大神 所需材料:STM32F ...
- Go官方库RPC开发指南
Go官方提供了一个RPC库: net/rpc.包rpc提供了通过网络访问一个对象的方法的能力.服务器需要注册对象, 通过对象的类型名暴露这个服务.注册后这个对象的输出方法就可以远程调用,这个库封装了底 ...
- IBM J9 Java 虚拟机正式开源;PyPI 官方库被发现混入了名字相似的恶意模块
(点击上方蓝字,快速关注我们) 参考:开源中国.solidot.cnBeta.腾讯科技等 0.IBM J9 Java 虚拟机正式开源,贡献给 Eclipse 基金会管理 去年这个时候,IBM 曾宣布要 ...
- 三步下载有3D封装的Altium designer官方库
Altium designer是原来Protel软件的升级版,前阵子发布了2020版本,是目前笔者用到的最好用的EDA软件. 当然,很多同学的ad都是来源于各个微信公众号.还是建议大家在自己能力范围内 ...
- nrf52832通过i2c官方库nrf_drv_twi读取tmp117温度
twi调试过程如下: 1 代码实现:分别实现对nrf_drv_twi_init,nrf_drv_twi_rx, nrf_drv_twi_tx相关官方库的调用 2 修改工程配置文件sdk_config. ...
最新文章
- squid与varnish
- 程序员用于机器学习数据科学的3个顶级 Python 库
- pdf转ppt怎么转换,pdf转换ppt的方法分享
- 【Hadoop】Hadoop MR异常处理
- 华为2017年财报,为何6036亿销售收入,净利润才479亿?
- 软件或jar包等名字里的GA意思
- websocket的用途/场景
- HTML5的LocalStorage和sessionStorage的使用 -缓存
- 转:一个小公司老板的日常管理
- java oxm_spring使用OXM进行对象XML映射解析
- 瑞波基因币靠谱吗_Fil币小矿工: IPFS国家认可吗?IPFS是靠谱项目吗?
- 数理统计基本原理复习
- win 10 系统怎么显示隐藏文件
- 听说3月15日深圳有场存储盛宴,约吗?
- 健康知识api根据健康知识ID查询详细信息
- 【DevOps研发管理方案】一:方案简介
- Java利用NeteaseCloudMusicApi批量下载网易云音乐
- STATA面板数据模型进行Hausman检验
- android 手机震动功能吗,Android编程实现手机震动功能的方法
- 简易客房管理系统(C++)
热门文章
- zuul+SpringSession的session不一致问题
- 纯干货-17 分布式深度学习原理、算法详细介绍
- WS2812硬件电路设计
- C# 使用SqlDataReader读取数据库数据
- 如何恢复计算机系统,电脑系统还原,手把手教你电脑系统怎么还原
- 干货丨语雀Baklib在产品帮助手册制作过程中的实际亲测
- android 使用epublib开源框架解析epub文件(章节内容、书籍菜单)
- 看到大神移植系统了,我来整理下市面上的系统...
- python数学编程 pdf,Python数学编程
- L3-007 天梯地图