第一次使用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相关推荐

  1. LeetCode题库第1题 两数之和

    两数之和 LeetCode题库第1题 两数之和 看到题,我就想到了暴力法: public int[] force(int[] nums,int target) {for (int i = 0; i & ...

  2. linux的进程与库之间的通信两种方式

    文章目录 前言 一.进程A与算法库b的通信方式之一:动态dlopen加载算法库b,编译的时候是需要加载该头文件就可以,无需连接该算法库b 具体的实施细节: 二.进程A与算法库b的通信方式之二:进程A编 ...

  3. 这几个常用的 Go 官方库,性能居然还不如三方开源库

    Go 语言官方库给我们一贯的印象是:强大.好用.但是,金无足赤,人无完人,在一些性能要求苛刻的场景例如 json 解析,某些官方库的表现不尽如人意. 本文介绍几个对标官方库的开源库,它们的性能远超前者 ...

  4. IAR 下根据官方库建立 STM32的工程

    目录 1. IARforSTM32工程v0.0版本.... 1 2. IARforSTM32工程v0.1版本.... 6 2.1今天v0.0版本出现了警告.... 6 2.2下载仿真.... 7 2. ...

  5. 在STM32的官方库切换芯片型号

    对象:在STM32F10X的3.5官方库的进行芯片的切换 例子:f103切换成f107 资源吸取自:野火的<[野火®]零死角玩转STM32-F103霸道>.网上大神 所需材料:STM32F ...

  6. Go官方库RPC开发指南

    Go官方提供了一个RPC库: net/rpc.包rpc提供了通过网络访问一个对象的方法的能力.服务器需要注册对象, 通过对象的类型名暴露这个服务.注册后这个对象的输出方法就可以远程调用,这个库封装了底 ...

  7. IBM J9 Java 虚拟机正式开源;PyPI 官方库被发现混入了名字相似的恶意模块

    (点击上方蓝字,快速关注我们) 参考:开源中国.solidot.cnBeta.腾讯科技等 0.IBM J9 Java 虚拟机正式开源,贡献给 Eclipse 基金会管理 去年这个时候,IBM 曾宣布要 ...

  8. 三步下载有3D封装的Altium designer官方库

    Altium designer是原来Protel软件的升级版,前阵子发布了2020版本,是目前笔者用到的最好用的EDA软件. 当然,很多同学的ad都是来源于各个微信公众号.还是建议大家在自己能力范围内 ...

  9. nrf52832通过i2c官方库nrf_drv_twi读取tmp117温度

    twi调试过程如下: 1 代码实现:分别实现对nrf_drv_twi_init,nrf_drv_twi_rx, nrf_drv_twi_tx相关官方库的调用 2 修改工程配置文件sdk_config. ...

最新文章

  1. squid与varnish
  2. 程序员用于机器学习数据科学的3个顶级 Python 库
  3. pdf转ppt怎么转换,pdf转换ppt的方法分享
  4. 【Hadoop】Hadoop MR异常处理
  5. 华为2017年财报,为何6036亿销售收入,净利润才479亿?
  6. 软件或jar包等名字里的GA意思
  7. websocket的用途/场景
  8. HTML5的LocalStorage和sessionStorage的使用 -缓存
  9. 转:一个小公司老板的日常管理
  10. java oxm_spring使用OXM进行对象XML映射解析
  11. 瑞波基因币靠谱吗_Fil币小矿工: IPFS国家认可吗?IPFS是靠谱项目吗?
  12. 数理统计基本原理复习
  13. win 10 系统怎么显示隐藏文件
  14. 听说3月15日深圳有场存储盛宴,约吗?
  15. 健康知识api根据健康知识ID查询详细信息
  16. 【DevOps研发管理方案】一:方案简介
  17. Java利用NeteaseCloudMusicApi批量下载网易云音乐
  18. STATA面板数据模型进行Hausman检验
  19. android 手机震动功能吗,Android编程实现手机震动功能的方法
  20. 简易客房管理系统(C++)

热门文章

  1. zuul+SpringSession的session不一致问题
  2. 纯干货-17 分布式深度学习原理、算法详细介绍
  3. WS2812硬件电路设计
  4. C# 使用SqlDataReader读取数据库数据
  5. 如何恢复计算机系统,电脑系统还原,手把手教你电脑系统怎么还原
  6. 干货丨语雀Baklib在产品帮助手册制作过程中的实际亲测
  7. android 使用epublib开源框架解析epub文件(章节内容、书籍菜单)
  8. 看到大神移植系统了,我来整理下市面上的系统...
  9. python数学编程 pdf,Python数学编程
  10. L3-007 天梯地图