在调试STM32F103单片机输出PWM波时,单独测试PA8和PA11输出PWM波(也就是TIM1_CH1和TIM1_CH4),输出PWM波正常。然后用串口1输出数据时,发现一个问题,串口输出正常,但是PA8就不能正常输出PWM波了。怀疑是串口功能和定时器功能有冲突,查看串口初始化代码,只用到了PA9和PA10,没有发现有改动PA8的地方。PA8的功能是 USART1_CK 和 TIM1_CH1 ,不知道默认开启串口1功能后, USART1_CK这个功能是不是系统自动设置的。
将串口初始化代码屏蔽后,PA8可以正常输出PWM,开启串口初始化功能后,PA8就不能正常输出PWM。然后尝试将串口初始化代码放在PWM初始化代码后,发现PA8可以正常输出PWM波,串口也可以正常输出数据。暂时没有找到引起PA8不能输出PWM波的正真原因,只能临时这样先解决这个问题。
初始化代码如下:

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "timer1.h"
#include "timer3.h"
#include "adc.h"//AD采样    PA0(总) PA1 PA2 PA3 PA4
//PWM输出   PA8 PA11 PB0 PB1u16 AD_Value[5] = {0};
int main(void)
{u16 i = 450;delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);TIM1_PWM_Init(1000 - 1, 72 - 1);TIM3_PWM_Init(1000 - 1, 72 - 1);uart_init(115200);                //串口必须在定时器后面初始化,否则PA8的PWM输出将会失效Adc_Init();DMA_Config(DMA1_Channel1, (u32)&ADC1->DR, (u32)&AD_Value, 5);DMA_Cmd(DMA1_Channel1, ENABLE);ADC_SoftwareStartConvCmd(ADC1, ENABLE);     //启动转换while(1){i++;if(i > 99){i = 0;printf("%5d,%5d,%5d,%5d,%5d\r\n", AD_Value[0], AD_Value[1], AD_Value[2], AD_Value[3], AD_Value[4]);}TIM_SetCompare1(TIM1, 200);TIM_SetCompare4(TIM1, 200);TIM_SetCompare3(TIM3, i*10);TIM_SetCompare4(TIM3, i*10);delay_ms(10);}
}

先初始化定时器1的PWM功能,再初始化串口,这样PWM功能和串口功能都能正常使用。

STM32F103 PA8不能输出PWM波问题相关推荐

  1. STM32单片机:定时器TIM输出PWM波

    学习32单片机过程中使用的工具:MDK Keil5 + 正点原子精英版(STM32F103ZET6)+ STM32CubeMX + HAL开发 一.PWM的产生原理 关于PWM的产生原理网上有很多教程 ...

  2. 树莓派输出pwm波c语言,02树莓派4B—C语言编程——PWM

    01树莓派直接输出PWM波 -- 硬件PWM程序  (推荐使用) #include #include #include //必不可少 int main( void) { int pwm_gpio5 = ...

  3. STM32CubeMX——LED定时闪烁和输出PWM波

    简介 通过学习STM32CubeMX软件,掌握配置各个部件的基本方法:了解外部中断,定时器中断,PWM波产生等功能的原理,编写程序代码,实现相应的功能. 程序预期结果: LED初始设置间隔2秒闪烁一次 ...

  4. STM32f103C8定时器输出PWM波信号

    利用stm32高级定时器输出PWM,模拟呼吸灯的效果带刹车功能.由于没有示波器查看输出的pwm波形图,所以本次实验使用普通直流电机模拟的. 本文章为学习笔记,其中有些地方解释的不是那么的好,即本笔记可 ...

  5. stm32f4 输出pwm波_stm32的pwm输出代码及注释

    stm32是非常常用的单片机.脉冲宽度调制(PWM),是英文"Pulse WidthModulation"的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非 ...

  6. STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波

    文章目录 一.前言 二.CubeMX 2.1.Clock Configuration 2.2.LPTIM2 Mode and Configuration 2.3.Parameter Settings ...

  7. 使用STM8S003定时器的PWM功能输出PWM波

    一.使用定时器TIM2的CH1.CH2.CH3通道PWM输出 1. 在使用stm8s系列的单片机的时候,使用的头文件大部分都是通用的stm8s.,第一步修改头文件: /* Uncomment the ...

  8. TMS28027输出PWM波例程解析

    PWM波模块由Time-Base(时基).Counter-Compare(计数器比较).Action-Qualifier(波形发生器).Dead-Band(死区设置).Trip-Zone(错误处理). ...

  9. msp430g2553输出PWM波

    用msp430g2553的定时器timerA就可以实现PWM波,内容不难!设置下时钟源,定时器配置一下就可以了 仿真: 代码: TA1CTL:选时钟源,计数模式增 TA1CCR0(定时器寄存器)与频率 ...

最新文章

  1. Python上下文语法with小述
  2. 数据变异性的度量 - 极差、IQR、方差和标准偏差
  3. Activity中KeyEvent的传递
  4. [翻译] WindowsPhone-GameBoy模拟器开发二--Rom文件分析
  5. 拥有这个证书的医务人员恭喜了,国家正式通知……
  6. 超多趣味测评测试微信小程序源码 可插入流量主广告位 无后台
  7. 郁金香商业辅助教程 2016 笔记 11~15
  8. python执行shell脚本、执行mongodb_mongodb如何执行js
  9. Windows 10 Python 深度学习环境安装
  10. YOLO算法的发展历程
  11. 使用 LwIP TCP/IP 栈,在 STM32Cube 上开发应用
  12. 使用canvas 画钟表
  13. Git down代码简易操作手册
  14. 如何获取手机app的签名
  15. 计算机win键在哪,Windows键是哪个?电脑上的Win键在哪里? [图片和文字]
  16. 使用certbot-auto脚本安装Certbot 生成https证书
  17. 【SAP】SAP FI,中英日专业名词对照表
  18. Jsp中的forward 和 redirect
  19. CIDR表示IP地址
  20. 成都Java培训班帮你分析如何通过企业面试

热门文章

  1. 如何将物理服务器转换成基于的Vmware ESXi虚拟服务器
  2. ssh 执行多条命令包含awk的用法
  3. [基础]sizeof和strlen
  4. 快速集成iOS基于RTMP的视频推流
  5. 20135302魏静静——linux课程第三周实验及总结
  6. 【动态规划】【数位DP】[PA 2015]Rownanie
  7. javascript获取Select下拉框的值
  8. 专注于分布式存储计算技术及其应用url http://www.nosqlnotes.net/
  9. 挣脱浏览器的束缚(5) - 哭笑不得的IE Bug
  10. 【线程】——线程安全问题