拥抱ARM妹纸第二季 之 第三次 给我变个月亮,让约会更浪漫!
嗯嗯,效果不错。趁着这个热乎劲,接到俺的LED测试板上试试。呃~~~ 竟然和小LED的效果不一样啊,不一样。不但闪烁而且完全没有调光效果。郁闷内,查查原因呗。看看那里出问题。迅速在PT4115手册里翻查。PWM有频率要求,难道我的频率太高啦。"最高可达20KHz“,好吧,就是高那么一丁点。继续折腾吧。不知何时外面的路灯亮了。渐渐只有汽车在路上压过马路的飞驰声,稀稀疏疏的几只蛤蟆在不停嘟囔着。余光瞟了下屏幕右下方的时间,竟然已是深夜1点多。看小穆两只水汪汪的大大眼,没了平时柔情似水电波。只看到双下眼皮在不停的打架。时间太晚为了明天继续保持活力,储备能量只为让明天同样的高效。睡觉去(~﹃~)~zZ。小穆晚安!
穆,俺的穆啊~~~ 小穆对着我摇了摇头,一脸无奈的看着我,耸耸肩摊开了双手。估计引脚是被烧坏。哎~~ 长叹一声。





#define STM32F10X_MD #include <stm32f10x.h> #define GPIO_CRH_MODE9_2MHz GPIO_CRH_MODE9_1
#define GPIO_CRH_CNF9_AOPP GPIO_CRH_CNF9_1
#define TIM_CR2_MMS_CP (TIM_CR2_MMS_0 | TIM_CR2_MMS_1)
#define TIM_CCMR2_OC4M_PWM1 (TIM_CCMR2_OC4M_1 | TIM_CCMR2_OC4M_2) void SystemInit(void)
{
unsigned char dump = ; // 使用外部8MHz晶振,启用PLL设置系统时钟为 72HMz
// USB 可用
// APB1 低速总线 36HMz
// APB2 高速总线 72HMz
RCC->CFGR = 0x001D0402;
RCC->CR = 0x01010083; // 闪存访问延迟,48MHz ~ 72MHz = 010。 复位值:0x30
FLASH->ACR = 0x32; // 确定外部高速晶振起效
while (!(RCC->CR>>));
// 确定PLL设置起效
while (!(RCC->CR>>));
// 确定PLL为系统时钟源
while(dump != 0x02) {
dump = RCC->CFGR >> ;
dump &= 0x03;
}
} void Delay(unsigned int v)
{
unsigned int x, y, iDelay;
for (iDelay=; iDelay < v; iDelay++)
for (x=; x < ; x++)
for (y=; y < ; y++)
;
} int main(void)
{
unsigned char iDir;
unsigned int pwmwidth, pwmarr; iDir = ;
pwmwidth = ;
pwmarr = ; // 100Hz // 总线 TIM4 和 B组引脚 使能
RCC->APB1ENR |= RCC_APB1ENR_TIM4EN;
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
// PA1 脚使用复用输出,打开TIM4第二通道
GPIOB->CRH &= ~(GPIO_CRH_MODE9 | GPIO_CRH_CNF9);
GPIOB->CRH |= GPIO_CRH_MODE9_2MHz | GPIO_CRH_CNF9_AOPP;
// 设置自动重载计数器
TIM4->ARR = pwmarr;
TIM4->PSC = ; // 100分频
// 设置PWM
// 通道2 PWM模式2
// 设置比较输出
// 设置比较脉冲宽度
TIM4->CCMR2 |= TIM_CCMR2_OC4M_PWM1;
TIM4->CCER |= TIM_CCER_CC4E;
// 设置为比较输出,使能TIM2
TIM4->CR2 |= TIM_CR2_MMS_CP;
TIM4->CR1 |= TIM_CR1_CEN; TIM4->CCR4 = pwmwidth; while () {
Delay(); if (iDir) {
pwmwidth += ;
if (pwmwidth > pwmarr){
pwmwidth = pwmarr;
iDir = ;
}
}
else {
if (pwmwidth > )
pwmwidth -= ;
else {
pwmwidth = ;
iDir = ;
}
}
TIM4->CCR4 = pwmwidth;
} }
羊肉串吃完,一切就绪。上电测试一切顺利。就是在调光模式下,横流测试板有啸叫声。

拥抱ARM妹纸第二季 之 第三次 给我变个月亮,让约会更浪漫!的更多相关文章
- 拥抱ARM妹纸第二季 之 第二次 约会需要浪漫,这么大灯泡怎么弄?
终于轮到俺的小穆出场啦.有请能让太阳也为之暗淡的小穆闪亮登场-,鼓掌吧,欢呼吧!-- ♪♪ We can burn brighter Than the sun ~~~ ♪♪ “谢谢---“ 唱的太棒啦 ...
- 拥抱ARM妹纸第二季 之 第一次 点亮太阳
上次做鱼缸LED灯时还有很多材料正好拿来用.穆等等哥- 俺去找材料. 材料列表 3W LED x 3 散热片 x 1 恒流IC x 1 其他零 ...
- 《Java入门第二季》第三章 继承
Java 中的继承1.作用:代码复用. 2.语法:extends关键字. 3.注意点:私有(private)财产(methods.fields)不可继承. Java 中的方法重写 Java 中的继承初 ...
- 为什么Sql Server的查询有时候第一次执行很慢,第二次,第三次执行就变快了
老外提问: Hi, I have an sql query which takes 8 seconds in the first run. The next run there after takes ...
- 拥抱ARM妹子第二季 之 序:我和春天有个约会 - 生命的萌芽
春姑年轻轻的吻了一下小穆妹纸的额头!从沉睡中苏醒的小穆妹纸,缓缓伸了个懒腰--- 啊-- 睡得真香! 等--等-等-!好像和童话故事里的情节不一样,应该由王子我来亲吻睡梦中的妹纸才能醒!!-- 强 ...
- 【bzoj3796】Mushroom追妹纸 hash/sa+kmp+二分
Description Mushroom最近看上了一个漂亮妹纸.他选择一种非常经典的手段来表达自己的心意--写情书.考虑到自己的表达能力,Mushroom决定不手写情书.他从网上找到了两篇极佳的情书, ...
- 基于MaterialDesign设计风格的妹纸app的简单实现
代码地址如下:http://www.demodashi.com/demo/11644.html *今天看了郭神的第二行代码,深深的被MaterialDesign的设计风格所吸引,然后就照例做了一个小D ...
- 【BZOJ3796】Mushroom追妹纸 二分+hash
[BZOJ3796]Mushroom追妹纸 Description Mushroom最近看上了一个漂亮妹纸.他选择一种非常经典的手段来表达自己的心意——写情书.考虑到自己的表达能力,Mushroom决 ...
- [BZOJ 3796]Mushroom追妹纸
[BZOJ 3796]Mushroom追妹纸 题目 Mushroom最近看上了一个漂亮妹纸.他选择一种非常经典的手段来表达自己的心意——写情书.考虑到自己的表达能力,Mushroom决定不手写情书.他 ...
随机推荐
- (ASP.Net)MVC4怎么设置@Html.TextBoxFor样式
添加自定义样式和属性: @Html.TextBoxFor(s=>s.dd,new {@class="main",@style="width: 100px;" ...
- Umbraco(1) - Document Types(翻译文档)
Document Types Data first nothing in = nothing out! 任何网站的第一步是创建一个"Document Type"-几次安装后你会熟悉 ...
- sgu 185 最短路建网络流
题目:给出一个图,从图中找出两条最短路,使得边不重复. 分析:既然是最短路,那么,两条路径上的所有节点的入边(s,x).出边(x,e)必定是最优的,即 dis[x] = dis[s]+edge_dis ...
- html5技术介绍
什么是HTML5 1>网页的5.0版本 1> 2014年才定制完HTML5的标准,历时8年 2> 移动先行 为什么要用HTML5 1> 跨平台 利用HTML5编写的UI界面能运 ...
- css3 text-transform变形动画
详细内容请点击 版本:CSS1 兼容性:IE4+ NS4+ 继承性:有 语法: text-transform : none | capitalize| uppercase| lowercase 参数: ...
- 【转载】理解OAuth 2.0
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 作者: 阮一峰 日期: 2014年5月12日 OAuth是一个关于授权(authorizat ...
- EL函数
EL表达式语法允许开发人员开发自定义函数,以调用Java类的方法. •示例:${prefix:method(params)} •在EL表达式中调用的只能是Java类的静态方法. •这个Java类的静态 ...
- Part 98 Anonymous methods in c#
What is an anonymous method? Anonymous method is a method without a name. Introduced in C# 2.0,they ...
- ef codeFirst 修改表结构 增加字段等 EF code first需要重新生成库导致数据丢失的问题.
需要在库程序包管理器里依次执行以下命令: 1.启用迁移功能:Enable-Migrations -ContextTypeName MvcMovie.Models.MovieDbContext 2.建立 ...
- Win7 服务优化个人单机版
我的PC设备比较旧了,为了系统能流畅点,不必要的服务就不开启了.然而,服务那么多,每次重装,都要从头了解一下一边,浪费时间. 个人在网络上收集信息并结合自己的摸索,整理如下,以备查找. 服务名称 显 ...