STM32F103 PA8不能输出PWM波问题
在调试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波问题相关推荐
- STM32单片机:定时器TIM输出PWM波
学习32单片机过程中使用的工具:MDK Keil5 + 正点原子精英版(STM32F103ZET6)+ STM32CubeMX + HAL开发 一.PWM的产生原理 关于PWM的产生原理网上有很多教程 ...
- 树莓派输出pwm波c语言,02树莓派4B—C语言编程——PWM
01树莓派直接输出PWM波 -- 硬件PWM程序 (推荐使用) #include #include #include //必不可少 int main( void) { int pwm_gpio5 = ...
- STM32CubeMX——LED定时闪烁和输出PWM波
简介 通过学习STM32CubeMX软件,掌握配置各个部件的基本方法:了解外部中断,定时器中断,PWM波产生等功能的原理,编写程序代码,实现相应的功能. 程序预期结果: LED初始设置间隔2秒闪烁一次 ...
- STM32f103C8定时器输出PWM波信号
利用stm32高级定时器输出PWM,模拟呼吸灯的效果带刹车功能.由于没有示波器查看输出的pwm波形图,所以本次实验使用普通直流电机模拟的. 本文章为学习笔记,其中有些地方解释的不是那么的好,即本笔记可 ...
- stm32f4 输出pwm波_stm32的pwm输出代码及注释
stm32是非常常用的单片机.脉冲宽度调制(PWM),是英文"Pulse WidthModulation"的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非 ...
- STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波
文章目录 一.前言 二.CubeMX 2.1.Clock Configuration 2.2.LPTIM2 Mode and Configuration 2.3.Parameter Settings ...
- 使用STM8S003定时器的PWM功能输出PWM波
一.使用定时器TIM2的CH1.CH2.CH3通道PWM输出 1. 在使用stm8s系列的单片机的时候,使用的头文件大部分都是通用的stm8s.,第一步修改头文件: /* Uncomment the ...
- TMS28027输出PWM波例程解析
PWM波模块由Time-Base(时基).Counter-Compare(计数器比较).Action-Qualifier(波形发生器).Dead-Band(死区设置).Trip-Zone(错误处理). ...
- msp430g2553输出PWM波
用msp430g2553的定时器timerA就可以实现PWM波,内容不难!设置下时钟源,定时器配置一下就可以了 仿真: 代码: TA1CTL:选时钟源,计数模式增 TA1CCR0(定时器寄存器)与频率 ...
最新文章
- Python上下文语法with小述
- 数据变异性的度量 - 极差、IQR、方差和标准偏差
- Activity中KeyEvent的传递
- [翻译] WindowsPhone-GameBoy模拟器开发二--Rom文件分析
- 拥有这个证书的医务人员恭喜了,国家正式通知……
- 超多趣味测评测试微信小程序源码 可插入流量主广告位 无后台
- 郁金香商业辅助教程 2016 笔记 11~15
- python执行shell脚本、执行mongodb_mongodb如何执行js
- Windows 10 Python 深度学习环境安装
- YOLO算法的发展历程
- 使用 LwIP TCP/IP 栈,在 STM32Cube 上开发应用
- 使用canvas 画钟表
- Git down代码简易操作手册
- 如何获取手机app的签名
- 计算机win键在哪,Windows键是哪个?电脑上的Win键在哪里? [图片和文字]
- 使用certbot-auto脚本安装Certbot 生成https证书
- 【SAP】SAP FI,中英日专业名词对照表
- Jsp中的forward 和 redirect
- CIDR表示IP地址
- 成都Java培训班帮你分析如何通过企业面试
热门文章
- 如何将物理服务器转换成基于的Vmware ESXi虚拟服务器
- ssh 执行多条命令包含awk的用法
- [基础]sizeof和strlen
- 快速集成iOS基于RTMP的视频推流
- 20135302魏静静——linux课程第三周实验及总结
- 【动态规划】【数位DP】[PA 2015]Rownanie
- javascript获取Select下拉框的值
- 专注于分布式存储计算技术及其应用url http://www.nosqlnotes.net/
- 挣脱浏览器的束缚(5) - 哭笑不得的IE Bug
- 【线程】——线程安全问题