历史上的今天
今天是:2025年02月09日(星期日)
2020年02月09日 | 【STM8S003】GPIO复用问题 TIM2_CH3 采用PD2引脚输出
2020-02-09 来源:eefocus
最近做了一款产品,使用STM8S003F3的片子,产品要求使用TIM2,在PD2引脚输出PWM波形。
安装了STM8专用版的IAR,下载了STM8的库文件,新建了工程,开始编写功能。
由于没有STM的经验,也是查阅了大量资料,花了1天时间搭建环境,写了一个简单的IO口定时输出高低电平的测试程序进行测试,用库文件,GPIO控制还算简单。
但是在接下来的一步,采用TIM2,在PD2引脚上输出波形时,出了问题。怎么配置都没有波形输出,上网查资料,才知道原来TIM2的CH3通道,有两路,一路是PA3,一路是PD2,GPIO复用,需要配置复用资源。量了量PA3,该引脚有输出,TIM2的初始化代码如下:
// init timer1 /1 perscaler-16MHz/up counter mode
// /time overload value/start at 0
TIM2_TimeBaseInit( TIM2_PRESCALER_1 , 16 );
// interrupt config and enable
TIM2_ITConfig( TIM2_IT_UPDATE, ENABLE );
// enable auto reload
TIM2_ARRPreloadConfig( ENABLE );
// 50% pulse width
TIM2_OC3Init( TIM2_OCMODE_PWM2, TIM2_OUTPUTSTATE_ENABLE, 8,
TIM2_OCPOLARITY_LOW );
TIM2_CCxCmd( TIM2_CHANNEL_3, ENABLE );
TIM2_OC3PreloadConfig( ENABLE );
// start timer
TIM2_Cmd( ENABLE );
// start interrupt
__enable_interrupt();
STM8片子如图所示:

找到原因后,那就找相应的解决办法就行了,先查了查STM8库文件的帮助手册,查阅相关函数,没有发现跟复用引脚有关的函数,然后查了查STM8的中文数据手册,手册上关于复用的那一页真凑巧没了,一脸黑线。上网查了查,找到了解决方法,直接在升级工具STVP上修改引脚复用配置即可。具体配置如下:

首先选择要升级的程序,然后点击【OPTION BYTE】按钮,在该界面的AFR1后边,点小三角,选择如图中红框的配置(其他复用可自行查看),选择好后,点击下载,完成后,GPIO复用配置就OK了,使用示波器量了量,成功在PD2上输出了PWM波,而PA3上的PWM波则没有了。
史海拾趣
|
瘋狂的出jffs2_scan_eraseblock錯誤。 我使用的是 8M Nor Flash 但是 沒有分區,請問 分區的作用是什麽? 這個問題最可能的原因是什麽,仰仗各位的經驗了。… 查看全部问答> |
|
请教一下EVC的调试方法 如何使用模拟机,我的模拟机为什么总提示我连不上,我的程序使用我的SDK在目标机上都成功执行了? 我可以在模拟机上单步调试我的程序吗? 我可以在目标机上单步调试我的程序吗?… 查看全部问答> |
|
CPU:NXP LPC2478 Flash:NOR SST39VF3201:4MB,4k扇区,地址:0x81000000 想在4M的NOR flash上作jffs2根文件系统,自己写了MTD驱动: #define FLASH_BASE_ADDR 0x81000000 #define F ...… 查看全部问答> |
|
我现在从事MIS系统的开发,想向硬件开发上深入一下,大家给点意建!!! 我已经从事MIS开发二年多了,主要是J2EE.这类开发是纯软件的,感觉现在做起来很辛苦而且市场越来越不理想了. 现在的软件产品能体现出大利润的我发现都要和硬件结合,于是我想在这方面深入一下,业内的朋友能不能给点议建? &nbs ...… 查看全部问答> |
|
南京招聘:有嵌入式及硬件基础知识的Delphi BCB程序员,从事监控主站开发 南京招聘:有嵌入式及硬件基础知识的Delphi BCB程序员,从事监控主站开发 要求: 1:熟悉Delphi开发环境。 2:熟练使用SQL-Server编程语言 3:了解一定的硬件知识和 ...… 查看全部问答> |




