
简单的说,就是把原来基于评估版()Firmware Lib上各个外设的应用示例移植到EK_STM32F上运行。4 A6 s' c& v5 M# w* M 工具IAR,使用方法:直接利用Firmware Lib的project,打开FWLib\project\EWARM打开Project.eww,并用相应文件覆盖project目录下的同名文件即可(main.c,etc)。 Firmware Lib下在地址:0 @5 j8 Q M) ^, U- m http://www.st.com/stonline/products/support/micro/files/um0427.zip7 A3 d% |8 A( t" e/ T Firmware Lib用户手册下载地址: http://www.st.com/stonline/products/literature/um/13475.pdf C$ r4 f" w- k$ C) X `& h7 ? ADC Exemple 1: 这个例子是利用ADC把通道14上(ADC Channel14)的模拟输入转换为数字值,并利用DMA将转化结果传送到ADC_ConvertedValue。 我的改动:' H9 ?& f0 b) z- d# J- \1 O8 d 1.由于评估版上ADC Channel14(PC.04)与分压计相连,而在EKSTM32F上,相应的管脚为PC.00(ADC Channel10),因此,在程序上也要有相应的改动(包括主程序main()和I/O配置程序GPIO_Configuration())。7 s. V" I1 y$ ]1 N( c1 W8 z 0 j: M4 [, p7 f+ M% w2 n ^ 2.为了是演示更加直观,我把转化结果ADC_ConvertedValue的值也显示在EKSTM32F的LCD屏幕上,为此,在程序中加入文件lcd.c和lcd.h(可以直接使用学习班ADCdemo的同名文件),并想ADCdemo一样,使用LcdShow_Init()来初始化用于LCD显示的TIM2,在中断配置NVIC_Configuration()和中断程序文件stm32f10x_it.c中,也要把对应的代码加上去。 运行本例,屏幕上就会显示PC.00(ADC Channel10)上的模拟输入值,0x0FFF对应最大值3.3V。- \2 P E# e1 M/ }( c+ W , R5 p& H+ { y9 E: S7 u ADC Exemple 2: & b* x0 i( ?( B; {2 x$ y2 R$ u3 o* J 这个例子是利用来自定时器TIM1的外部触发,来启动ADC,先把转化通道14上(ADC Channel14)的模拟输入,并利用DMA将转化结果传送到表格ADC_RegularConvertedValueTab,再转化完成后,ADC会自动启动对通道11上(ADC Channel11)的转化,并在ADC产生的中断中,把结果存入表格ADC_InjectedConvertedValueTab。7 d1 B/ S9 L* f' v& f9 q4 j 1 D7 y9 O. o y! P1 Y' o 我的改动:2 p( W' [' }4 z0 b7 U2 D& K( c 1.和exemple1一样,把ADC Channel14改为ADC Channel11 2.和exemple1一样,利用LCD把ADC_RegularConvertedValueTab和 ADC_InjectedConvertedValueTab中的一个值,交替显示在屏幕上。+ C; i9 c: q1 c; S" _4 c / p. M' |1 x- W7 m4 } 如果把PC.01管脚(ADC Channel11)悬空的话,我们会发现,转换结果会是任意值,假如把它接地或者高电平,那么就会显示0000或者0FFF。 |