资源简介
使用STM32的内部定时器和DMA来产生一路或两路互补的SPWM波

代码片段和文件信息
#include “stm32f10x.h“
#define TIM1_CCR3_Address 0x40012C3C
#define MAX_TABLE 180
TIM_TimebaseInitTypeDef TIM_TimebaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
uint16_t SRC_Buffer[MAX_TABLE] = {
1000103310661099113211651198123012621294132513561386141614461475
1503153115581585161116361660168317061728174917691788180618231839
1854186818811893190419131922192919361941194519481949195019491948
1945194119361929192219131904189318811868185418391823180617881769
1749172817061683166016361611158515581531150314751446141613861356
13251294126212301198116511321099106610331000 967 934 901 868 835
802 770 738 706 675 644 614 584 554 525 497 469 442 415 389 364
340 317 294 272 251 231 212 194 177 161 146 132 119 107 96 87
78 71 64 59 55 52 51 50 51 52 55 59 64 71 78 87
96 107 119 132 146 161 177 194 212 231 251 272 294 317 340 364
389 415 442 469 497 525 554 584 614 644 675 706 738 770 802 835
868 901 934 967
};
ErrorStatus HSEStartUpStatus;
/* Private function prototypes -----------------------------------------------*/
void RCC_Configuration(void);
void GPIO_Configuration(void);
void DMA_Configuration(void);
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
DMA_Configuration();
/* TIM1 Peripheral Configuration --------------------------------------------*/
/* Time base configuration */
TIM_TimebaseStructure.TIM_Prescaler = 0;
TIM_TimebaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimebaseStructure.TIM_Period = 2000-1;//72M/x=frq R*C=0.025 R=100Kc=100000p=0.1uf=0.0000001f
TIM_TimebaseStructure.TIM_ClockDivision = 0;
TIM_TimebaseStructure.TIM_RepetitionCounter = 2;
TIM_TimebaseInit(TIM1 &TIM_TimebaseStructure);
/* Channel 3 Configuration in PWM mode */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
TIM_OCInitStructure.TIM_Pulse = 50;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
TIM_OC3Init(TIM1 &TIM_OCInitStructure);
/* TIM1 Update DMA Request enable */
TIM_DMACmd(TIM1 TIM_DMA_Update ENABLE);
/* TIM1 counter enable */
TIM_Cmd(TIM1 ENABLE);
/* Main Output Enable */
TIM_CtrlPWMOutputs(TIM1 ENABLE);
while (1)
{}
}
void RCC_Configuration(void)
{
SystemInit();
/* TIM1 GPIOA and GPIOB clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 | RCC_APB2Periph_GPIOA |
RCC_APB2Periph_GPIOB ENABLE);
/* DMA clock enable */
RCC_AHBPeriphClock
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4478 2013-07-22 18:58 User\main.c
文件 3259 2011-04-04 19:03 User\stm32f10x_conf.h
文件 4405 2011-04-04 19:03 User\stm32f10x_it.c
文件 2086 2011-04-04 19:03 User\stm32f10x_it.h
文件 36557 2011-04-04 19:03 User\system_stm32f10x.c
目录 0 2013-07-06 16:05 User\MyCHFile
目录 0 2013-07-22 18:58 User
----------- --------- ---------- ----- ----
50785 7
- 上一篇:STM32F103测频率
- 下一篇:robotfr
amework 汉化报告结果文件
相关资源
- stm32f103c8t6_sch.Lib
- STM32F103RC+ADC+DMA多通道采样LCD显示
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- DAC0832波形发生器幅值及频率都精确可
- proteus仿真 AT89C51输出各种波形
- STM32F103 串口程序(完整版)
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32F103 CC2500完整驱动(模拟SPI)
- C 源码 画出wav文件声音数据的波形曲
- 简单函数发生器,能产生常见的三种
- 声音文件播放程序.可以播放WAV文件并
- VHDL带分频功能的函数发生器实现六种
- SX1280.rar
- STM32F103C8T6+NRF24l01无线通信
- VS1053B编解码器的VDR分布式声音采集卡
- stm32f103.SchDoc
- STM32F103 USART+DMA
- stm32f105-usart-DMA收发demo
- 基于STM32F103C8单片机的晶联讯电子JL
- STM32F103实现OV7670摄像头显示
- STM32F103VCT6TR - High-density performance lin
- stm32f103 虚拟U盘,调试成功的
- 基于stm32F103vct6的SD卡FATFS文件系统移植
- STM32F103启动文件HD;MD
评论
共有 条评论