现象
用定时器TIM4定时翻转GPIO用低电平灌电流驱动LED闪烁的简单测试程序不能正常执行。LED灯不闪烁,debug查看GPIO口却是正确的被翻转了。测试IO口电压不对。
问题代码
void main(void)
{
// 系统时钟不分频(内部16MHz)
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
// TIM4进行128分频,同时设置溢出上限值保证1ms一次中断
TIM4_TimeBaseInit(TIM4_PRESCALER_128, 124);
// 开TIM4更新事件中断
TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);
// 开总中断
enableInterrupts();
// 使能定时器4
TIM4_Cmd(ENABLE);
// 初始化GPIO,输出上拉模式
GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_SLOW);
while (1){}
}
直接原因
继续debug发现GPIO的方向寄存器DDR和模式寄存器CR1没有被设置。
根本原因
在GPIO初始化完成之前定时器就开始运行了。导致不断进入定时器中断,后面的GPIO初始化代码没有正确被执行(或者定时器中断中不能被正确执行?这个没有深究了)
解决
将GPIO初始化代码放在定时器初始化之前(放在使能之前即可)
正确代码
void main(void)
{
// 系统时钟不分频(内部16MHz)
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
// GPIO的初始化要放在timer初始化之前,否则初始化的过程会被中断打断导致输出有问题(DDR还没来得及配置成输出模式)
GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_SLOW);
// TIM4进行128分频,同时设置溢出上限值保证1ms一次中断
TIM4_TimeBaseInit(TIM4_PRESCALER_128, 124);
// 开TIM4更新事件中断
TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);
// 开总中断
enableInterrupts();
// 使能定时器4
TIM4_Cmd(ENABLE);
while (1){}
}
上一篇:梦之墨T系列产品的又一次完美亮相
下一篇:解决STM8定时器首次进入中断时间不对
推荐阅读
史海拾趣
近年来,CDIL积极响应政府政策,利用生产挂钩激励计划(PLI)和电子元件和半导体制造促进计划(SPECS),计划将其产能从目前的5亿片基础上提高1亿片。同时,公司还计划在未来几年内建立两条新的ATMP生产线,以进一步提升产能和技术水平。此外,CDIL还在碳化硅(SiC)等新技术领域进行了深入研发,以满足电动汽车、电源管理设备等新兴市场的需求。
在激烈的市场竞争中,倍(DBIC)公司不断优化供应链管理,降低成本,提高效率。公司与全球多家供应商建立了长期稳定的合作关系,确保原材料的稳定供应。同时,倍(DBIC)公司还加强了对生产过程的监控和管理,确保产品质量和交货期。这些措施使倍(DBIC)公司在成本控制和交付能力方面具备了明显的竞争优势。
倍(DBIC)公司深知人才是企业发展的核心动力。因此,公司高度重视人才培养和团队建设。公司建立了完善的培训体系,为员工提供丰富的培训资源和学习机会。同时,倍(DBIC)公司还积极引进优秀人才,构建了一支高效、专业的团队。这支团队在公司的发展中发挥了重要作用,为公司创造了巨大的价值。
在快速发展的同时,Chiplus也积极履行社会责任,关注环境保护和可持续发展。公司采用环保材料和节能技术,降低生产过程中的能耗和排放。同时,Chiplus还积极参与社会公益活动,支持教育事业和科技创新,为社会进步贡献自己的力量。
这五个故事从不同角度展现了Chiplus Semiconductor Corp公司的发展历程和成就。作为一家技术领先的IC设计公司,Chiplus始终坚持以客户为中心,以技术创新为动力,不断推动半导体行业的发展。未来,Chiplus将继续秉承初心和使命,为全球客户提供更优质的产品和服务。
随着全球半导体市场的不断扩大,Chiplus也加快了市场拓展的步伐。公司不仅在日本、欧盟、美国和泛太平洋亚洲地区建立了稳定的客户群体,还积极开拓新兴市场,提升品牌知名度和影响力。同时,Chiplus还加强了与全球知名企业的合作,通过技术合作、产业链协同等方式,共同推动半导体行业的发展。
为了寻求更广阔的发展空间,富致科技积极参与各类产业交流活动。例如,在2023年7月,富致科技的董事长陈继圣和总厂长叶敬强前往中国大陆芜湖市进行考察交流,参观了奇瑞新能源汽车股份有限公司等企业,并与芜湖宏景电子、安瑞光电、致通汽车电子等产业链相关企业进行了深入交流。这些交流不仅让富致科技更加了解大陆市场的需求和潜力,也为双方未来的合作奠定了良好的基础。
前几天整理收藏夹,突然觉得自己在道上混了那么多年,也搜集了不少好的坛子所在,不敢独占,与众兄弟共享! 1. http://www.21 ic bbs.com/club/default.asp 正所谓隐者居于山,国内许多EEer元老级的人物就隐居于此,不少class级的帖子都源自于此.如果 ...… 查看全部问答∨ |
IF BSP_NOI2C ! ;; I2C Bus Driver [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\I2C] "Prefix"="I2C" "Dll"="I2C.DLL" "Order"=dword:0 "Index"=dword:0 &nb ...… 查看全部问答∨ |
我在开发板上查了个传感器,现在已经能通过read等系统调用读出数据, 我是想把读出的数据存起来,而且还希望能通过PC机对这些数据读取、处理。这些数据是存在开发板上的数据库中好呢还是读到PC机上后再存到数据库中? 希望有经验的朋友给个建议, ...… 查看全部问答∨ |
|
用的DSP是TMS320C6745,是SPI1的接收程序。运行时,无法进入SPI接收中断程序,总是停在主程序中的while(1)这里,进不了中断。 附上程序。 #include \"Initial.h\" extern CSL_SpiRegsOvly spiRegs;extern void intcVectorTable(void);Ui ...… 查看全部问答∨ |
|
【10款典型实验室电路推荐】之五:图1所示电路提供20位可编程电压,其输出范围为−10 V至+10 V ,同时积分非线性为±1 LSB、微分非线性为±1LSB,并且具有低噪声特性。 &n ...… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 了解PI InnoSwitch-CE,答题赢好礼
- 评论赢京东卡,探秘美光内存和存储解决方案!
- 观看TI IOT解决方案研讨会 答题即可赢取更多精美好礼!
- 有奖直播报名:赛灵思和安富利专注嵌入式视觉应用,助力人工智能和汽车辅助驾驶!
- ST有奖直播 | 75V降压控制器和隔离降压方案
- 有奖活动“庖丁”解智能睡眠监测仪,一波“水军”来围观
- Follow me第二季第1期来啦!与得捷一起解锁【Adafruit Circuit Playground Express】超能力!
- TI电机驱动课程重磅来袭,评论赢奖!
- ADI有奖下载活动之15 ADI公司智能可穿戴医疗保健设备解决方案
- ADI有奖下载活动之25:ADI汽车传感器和传感器接口解决方案