完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
ADC的程序没有问题,采回了AD值。新建一个adc.c文件就不能采ad值了。
目标:把ADC配置函数、中断服务函数都放到adc.c文件中,按照我的方式处理后,采不到AD,好像是进不了中断 我的做法:新建adc.c文件并加入工程中;新建adc.h文件声明void ADC_Configuration(void); uint16_t ADC1_sample(void);然后怎么就进不去中断了呢? adc.c文件内容: #include "STM32f10x.h" #include "stm32f10x_exti.h" #include "stm32f10x_rcc.h" #include "misc.h" static uint16_t ADC_Value; static volatile int ad_over; void ADC_Configuration() { } void ADC1_2_IRQHandler(void) { while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)); ADC_Value=ADC_GetConversionValue(ADC1); ad_over=1; ADC_ClearITPendingBit(ADC1, ADC_IT_EOC); } uint16_t ADC1_sample(void) { // ADC_Cmd(ADC1, ENABLE); ADC_SoftwareStartConvCmd(ADC1, ENABLE); while(1) { if(ad_over) { ad_over=0; break; } } return ADC_Value; } 下面是adc.h文件的内容: #ifndef __ADC_H #define __ADC_H #include "stdint.h" void ADC_Configuration(void); uint16_t ADC1_sample(void); #endif 下面是主函数main.c文件内容: #include "pbdata.h" #include "adc.h" unsigned char Buffer[2]; int main(void) { u16 ad; SystemInit(); while(1) { ad = 0; ad=ADC1_sample(); ad=(3.3/4095)*ad*1000; Buffer[0]=ad/100; Buffer[1]=ad%100; SysTick_delay_ms(800); } } 请问我哪里出了问题 原先程序是这样的,可以正常运行 void ADC_Configuration()在main.c文件中 void ADC1_2_IRQHandler(void)和uint16_t ADC1_sample(void);在stm32f10x_it.c中 程序可以正常运行,采到AD值。我把他们放的adc.c文件就不行了。
复制代码 |
|
相关推荐
8个回答
|
|
声明加 extern
|
|
|
|
|
|
|
|
把 IRQHandler 挪回去试试?
|
|
|
|
最开始我只把void ADC_Configuration(void)放到adc.c中,void ADC1_2_IRQHandler(void)和uint16_t ADC1_sample(void);仍在stm32f10x_it.c中,就进不去中断了 |
|
|
|
没看到哪个地方调用了 ADC_Configuration()啊
|
|
|
|
在主函数调用ADC_Configuration()就可以了。多谢 |
|
|
|
你可能那个头文件没有在c/c++那里面的选项里添加
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2171 浏览 0 评论
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
1225 浏览 0 评论
2914 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2672 浏览 3 评论
5357 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-16 06:14 , Processed in 0.523140 second(s), Total 52, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号