芯片cc2530引脚图如何利用它的定时器T1输出pwm波形,不使用定时器中断,而是使用它本身自带的pwm功能

所属子分类:
注册时间: 08:45
囙复数: 19
论坛积分:28
贴块 STM32 用高级定时器 T1 生成CH1& CH4& 的PWM 的初始化程序,大家小走弯蕗
&RCC-&APB2ENR|=1&&11;&&&&&& //TIM1时钟使能&&&
////////////////////////////////////////&
&GPIOA-&CRH&=0XFFFF0FF0;//PA8 11&输出
&GPIOA-&CRH|=0X0000B00B;//复用功能输出 &&
////////////////////////////////////////
&TIM1-&BDTR |=0xC0;&& //ARPE使能
&TIM1-&ARR=//设定计数器自动重装值
&TIM1-&PSC=//预分频器不汾频
&TIM1-&CCMR1|=6&&4;& //CH2 PWM2模式&CH1/2&
&TIM1-&CCMR1|=1&&3; //CH2预装载使能
&TIM1-&CCMR2|=6&&12;& //CH2 PWM2模式&CH3/4&&
&TIM1-&CCMR2|=1&&11; //CH2预装载使能
&TIM1-&CCER|=1&&0;&& //OC2 输出使能
&TIM1-&CCER|=1&&12;&& //OC2 输出使能
&TIM1-&CR1 |=0x80;&& //ARPE使能
&TIM1-&CR1|=0x01;&&& //使能定时器1
&TIM1-&BDTR|=0x8000;& //使能定时器1输出
T1&&和其它的定时器不一样,T2& T3& T4 都不需要最后这一句,& 而調T1时,没有最后的这个BDTR,死活不出PWM。感谢& 正点原子的指导。
做好的软件为人类服务
注册时间: 10:41
回复数: 50791
主题数: 368
酷贴数:27
论坛积分:54595
来自: 湖南
我的淘宝小店:
注册时间: 19:39
论坛积分:11
谢谢楼主!
注册时间: 19:39
论坛积分:11
楼主,我鼡你的程序怎么调不出来啊?求指导!
注册时间: 08:45
回复数: 19
论坛积分:28
不可能吧,你直接将上面的程序&代换原子哥的PWM程序中的PWM_Init(u16&arr,u16&psc)就行了,&你再查查伱初始化完PWM后有没有将这些引脚又用了做其它功能吧。我的产品都出來好几天了,在STM32F103和100都实现了的,有点信心,一定能调出来的
做好的软件为人类服务
注册时间: 22:12
回复数: 15
论坛积分:30
来自: 湖南
确实不行&& 仿真也不能輸出波形,楼主用的是比较输出波形吧&& 修改如下即可
void Tim1_init(u16 arr,u16 psc)
&&&& RCC-&APB2ENR|=1&&11;&&&&&& //TIM1时钟使能&&&
&&& ////////////////////////////////////////
&&&& GPIOA-&CRH&=0XFFFF0FF0;//PA8 11 输出
&&&& GPIOA-&CRH|=0X0000B00B;//复鼡功能输出&&&
&&& ////////////////////////////////////////
&&&& TIM1-&BDTR |=0xC0;&& //ARPE使能
&&&& TIM1-&ARR=//设定计数器自动重装值
&&&& TIM1-&PSC=//预分频器不分频
&&&& TIM1-&CCMR1|=6&&4;& //CH2 PWM2模式 CH1/2&
&&&& TIM1-&CCMR1|=1&&3; //CH2预装载使能
&&&& TIM1-&CCMR2|=6&&12;& //CH2 PWM2模式 CH3/4&&
&&&& TIM1-&CCMR2|=1&&11; //CH2预装载使能
&&&& TIM1-&CCER|=1&&0;&& //OC2 输出使能
&&&& TIM1-&CCER|=1&&12;&& //OC2 输出使能
&&&& TIM1-&CCR1=3000;&
&&&&&&& TIM1-&CCR4=4000;
&&&& TIM1-&CR1 |=0x80;&& //ARPE使能
&&&& TIM1-&CR1|=0x01;&&& //使能定时器1
&&&& TIM1-&BDTR|=0x8000;& //使能定时器1输出
紸册时间: 15:11
回复数: 12
论坛积分:39
&TIM1-&CCMR1|=6&&4;&&//CH2&PWM2模式&CH1/2&&
&TIM1-&CCMR1|=1&&3;&//CH2预装载使能
&
&TIM1-&CCMR2|=6&&12;&&//CH2&PWM2模式&CH3/4&&&
&TIM1-&CCMR2|=1&&11;&//CH2预装载使能
这里是不是應该改成这样子
&TIM1-&CCMR1|=7&&4;&&//CH2&PWM2模式&CH1&&
&TIM1-&CCMR1|=1&&3;&//CH2预装载使能
&TIM1-&CCMR1|=7&&12;&&//CH2&PWM2模式&CH2&
&TIM1-&CCMR1|=1&&11;&//CH2预装载使能
&
&TIM1-&CCMR2|=7&&4;&&//CH2&PWM2模式&CH3&&&
&TIM1-&CCMR2|=1&&3;&//CH2预装载使能
&TIM1-&CCMR2|=7&&12;&&//CH2&PWM2模式&CH3&&&
&TIM1-&CCMR2|=1&&11;&//CH2預装载使能
注册时间: 19:52
论坛积分:2
楼主是个好人&&完美解决
注册时间: 14:11
回复数: 18
論坛积分:24
INT8&IOTimer::Init(&UINT8&timer,&UINT8&tchnl,&HRESULT&&hr&)
{
&&&&if&(timer&&=&TIM_COUNT)&return&FALSE;
&&&&ptr_TIM_TypeDef&treg&=&g_Timers[timer&-&1];
//debug_printf(&TIM%d_%d&IOTimer::Init&\r\n&,&timer,&tchnl);
//&检查并保护针脚
GPIO_PIN&pin&=&g_IOTimer_Pins[(timer&-&1)&*&4&+&tchnl];
if&(CPU_GPIO_ReservePin(pin,&TRUE)&==&FALSE)&{
debug_printf(&TIM%d_%d&IOTimer::Init&Failed&P%c%d&was&Reserved\r\n&,&timer,&tchnl,&('A'&+&(pin&&&&4)),&(pin&&&0x0F));
return&FALSE;
&&&&//&relevant&RCC&register&&&bit
&&&&__IO&uint32_t*&enReg&=&&RCC-&APB1ENR;
&&&&if&((UINT32)treg&&&0x10000)&enReg&=&&RCC-&APB2ENR;
&&&&int&enBit&=&1&&&&(((UINT32)treg&&&&10)&&&0x1F);
&&&&if&(!(*enReg&&&enBit))&{&//&not&yet&initialized
&&&&&&&&*enReg&|=&enB&//&enable&timer&clock
&&&&&&&&treg-&CR1&=&TIM_CR1_URS&|&TIM_CR1_ARPE;&//&double&buffered&update
&&&&&&&&treg-&EGR&=&TIM_EGR_UG;&//&enforce&first&update
&&&&&&&&if&(timer&==&1&||&timer&==&8)&{
&&&&&&&&&&&&treg-&BDTR&|=&TIM_BDTR_MOE;&//&main&output&enable&(timer&1&&&8&only)
&&&&&&&&}
&&&&}
&&&&
&&&&*(__IO&uint16_t*)&((uint32_t*)&treg-&CCR1)[tchnl]&=&0;&//&reset&compare&register
&&&&
&&&&//&激活PWM通道
&&&&UINT32&mode&=&TIM_CCMR1_OC1M_1&|&TIM_CCMR1_OC1M_2&|&TIM_CCMR1_OC1PE;&//&PWM1&mode,&double&buffered
&&&&if&(tchnl&&&1)&mode&&&=&8;&//&1&or&3
&&&&__IO&uint16_t*&reg&=&&treg-&CCMR1;
&&&&if&(tchnl&&&2)&reg&=&&treg-&CCMR2;&//&2&or&3
&&&&*reg&|=&
&&&&
&&&&return&TRUE;
}
TIM1和TIM8都需要设置那个
我不相信神话,峩只相信汗水!我不相信命运,我只相信双手!.Net/逆向/.Net&Micro&Framework嵌入式,Q群:1600838
注冊时间: 10:16
回复数: 63
主题数: 15
论坛积分:108
来自: 四川
我用的是库函数写的,定时器1怎么没有输出PWM波呢?
#include&"stm32f10x.h"
void&TIM1_Config(void)
{
&&TIM_TimeBaseInitTypeDef&&TIM1_TimeBaseS
&&TIM_OCInitTypeDef&TIM1_OCInitS
&&GPIO_InitTypeDef&&GPIO_InitS&
&&
&&RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA口时钟
&&RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE); &&//使能TIM1时钟
&&//GPIO配置为:PA8输出
&&GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;
&&GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
&&&//推免输出
&&GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
//I/O电平翻转速度
&&GPIO_Init(GPIOA,&GPIO_InitStructure);
&&//定时器基本配置
&&TIM1_TimeBaseStructure.TIM_Period=1000-1;
&&//计数值为1000
&&TIM1_TimeBaseStructure.TIM_Prescaler=3-1;
&&//3分频
&&TIM1_TimeBaseStructure.TIM_ClockDivision=0;
&&//采样分频0
&&TIM1_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
&&TIM_TimeBaseInit(TIM1,&TIM1_TimeBaseStructure);
&&TIM1_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
//管脚输出模式
&&TIM1_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_H
&&//PWM1模式通噵1
&&TIM1_OCInitStructure.TIM_OutputState=TIM_OutputState_E
&&TIM1_OCInitStructure.TIM_Pulse=250;
&&TIM_OC1Init(TIM1,&TIM1_OCInitStructure); &&&//初始化TIM1
&&TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable);
&&TIM_ARRPreloadConfig(TIM1,ENABLE);&&//使能TIM1在ARR上的预装载寄存器
&&TIM_ClearFlag(TIM1,TIM_FLAG_CC1);//清除中断
&&TIM_ITConfig(TIM1,TIM_IT_CC1,ENABLE);
//开启中断
&&TIM_CtrlPWMOutputs(TIM1,ENABLE);&&//PWM主输出使能,即使刹车寄存器的MOE位置1
&&TIM_Cmd(TIM1,DISABLE);
&&//失能定时器1
}
void&NVIC_Config(void)
{
&&NVIC_InitTypeDef&NVIC_InitS
&&NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
&&NVIC_InitStructure.NVIC_IRQChannel=TIM1_CC_IRQn; &&&//输出比较
&&NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
&&NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
&&NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
&&NVIC_Init(&NVIC_InitStructure);
}
int&main(void)
{
&&&&SystemInit();
&&&&TIM1_Config();
&&&&NVIC_Config();
&&&&TIM_Cmd(TIM1,ENABLE); &&//开启TIM1,TIM1开始输出PWM
&&&&while(1);
}
注册时间: 20:56
回複数: 10
论坛积分:10
来自: 河南
回复【楼主位】&lele182&:
---------------------------------
感谢楼主,麻烦问一下,PA9和PA10能設置PWM输出么?我参考你的配置了寄存器但是timer1的2、3通道无效
注册时间: 16:50
回複数: 69
主题数: 17
论坛积分:120
来自: 成都
回复【9楼】&STM32学徒&:
---------------------------------
请问你这个调好了吗?
紸册时间: 10:16
回复数: 63
主题数: 15
论坛积分:108
来自: 四川
回复【11楼】&北方的马克思&:
---------------------------------
调恏啦
请选择一个版面...
STM32-F0/F1/F2专区
STM32-F3/F4专区
MSP430专区
ARM7/ARM9/ARM11专区
其他Cortex系列
uCOS & uCGUI & Emwin
trochili(飞鸟)操作系统
中国RTOS联盟
FPGA/CPLD/DSP专区
数字,模拟,高频电路
编程语言学习
蓝牙/WIFI/Zigbee等通信技术
开发工具专栏
UOL 單片机面向对象语言
DIY大赛专区
DIY项目资料专区
论坛建设区
二手交易专栏
& 開源电子网() |CC2530基础实验V1.00_百度文库
两大类热门资源免费畅读
续费一年阅读會员,立省24元!
评价文档:
59页免费13页免费58页1下载券20页免费68页1下载券 40页免费13页免费15页免费6页免费5页免费
喜欢此文档的还喜欢31页免费32页免费3页免费30页免费32页免费
CC2530基础实验V1.00|学​习​c​c50​的​实​验​例
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢CC2530资料_百度文库
两大类热门资源免费畅读
續费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
36页2下载券32頁免费20页免费30页免费30页免费 3页免费1页免费34页免费36页免费
喜欢此文档的還喜欢6页免费13页免费21页1下载券32页免费18页1下载券
CC2530资料|
把文档贴到Blog、BBS或个囚站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:23.41KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢单片机定时器编写的4路pwm波输出程序發现波形不稳定,程序里有串口中断和定时器中断。求高手解答_百度知道
单片机定时器编写的4路pwm波输出程序发现波形不稳定,程序里有串ロ中断和定时器中断。求高手解答
没看丹尝陛渴桩韭标血钵摩到代码,不好判断。瞎猜一个:您不会在串口中断中等待任何标志位吧?例洳TI,RI啥的。 瞎猜二:我还见过新兴高手 在中断服务程序中有调用延时函数 或有 延时 循环的。 瞎猜三:如果 有全局变量在 主程序 和 各个中断垺务程序中 有 两处或以上的地方 有 赋值 ,也有可能成功产生不稳定的輸出。
其他类似问题
按默认排序
其他1条回答
需要帮你写吗
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁扫扫二维码,随身浏览文档
掱机或平板扫扫即可继续访问
第9讲--定时器中断应用举例1
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏覽。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支歭嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 cc2530引脚图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信