1、RCC_APB2Periph_AFIO :需要用到外设的重映射功能时才需要使能AFIO的时钟即引脚复用时。
2、RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
功能为打开或关闭对应的外设输出时钟端口 。
3、EXTI_GenerateSWInterrupt(EXTI_Line0); 产生一个软件中断,EXTI_Line0待使能或失能的线路(这里是EXTI0)。
4、 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);连接EXTI0和PA口。
5、NVIC_IRQChannelPreemptionPriority:设定43个中断通道的抢占优先级。
NVIC_IRQChannelSubPriority:响应优先级。
使用时,先指定选择哪一组 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); 默认第0组。共0—4组。
具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套在低抢占式优先级的中断中。当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。
http://blog.csdn.net/yyyljw/article/details/50539520
6、SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk ;等价于SysTick->CTRL |= 1 <<0; 打开SysTick定时器。
SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk; 清零操作 。
7、while(temp&0x01 && !(temp & (1 << 16))); 等待时间到达。
注:SysTick第0位是使能位。滴答计时器计数为0后,第16位为1.
8、fac_us = SystemCoreClock / 8000000; 1us的设定要求。
SYSCLK即SystemCoreClock
HCLK即SYSCLK分频得来(在此未分频),即HCLK==SystemCoreClock
SysTick时钟是HCLK8分频,即SysTick时钟频率==HCLK/8==SystemCoreClock/8,
因此,SysTick一个计数时长(1/(SystemCoreClock/8)),
1us需要计数次数为10^-6÷[1/(SystemCoreClock/8)]=SystemCoreClock/8000000
9、波特率。
波特率通常单位是bit/s,也就是 二进制位/秒。因为一个字节是8个bit,而一个字节通常可以表达一个ASCII码,比如一个英文字母,所以:9600的波特率的信道,理论上每秒可以传输9200/8个英文字母的数据量,也就是1200个字节,大约1.2KB。
10、回车ASCII码:0x0D 。 空格ASCII码:0x0A 。
11、RCC_ADCCLKConfig(RCC_PCLK2_Div6);
ADC最大时钟不能超过14M,故这里采用固件库形式,使用6分频。
12、
13、
STM32F103ZET中ADC特性:
14、PWM实验。主要涉及定时器的使用。
http://blog.csdn.net/gtkknd/article/details/39296151
15、
Flash_ID = SPI_FLASH_ReadID();读取FLASH器件的设备ID信息;
读取器件ID信息可以知道设备与主机是否能够正常工作,也便于区分不同的器件,可以在使用的FLASH用户数据手册找到ID表。
16、
SPI_InitStructure.SPI_Direction= SPI_Direction_2Lines_FullDuplex; 这里设置通讯模式,这里设置成全双工模式
SPI_InitStructure.SPI_Mode = SPI_Mode_Master; 这里是设置工作模式,STM32的SPI设备可以gon工作在主机模式(SPI_Mode_Master)或从机模式(SPI_Mode_Slave),这两个模式最大的区别就是SPI的SCK信号线时序,SCK的时序是由通讯中的主机产生的,如果配置成从机模式,STM32的SPI模块将接收外来的SCK信号.(这里STM32作为SPI通讯主机,所以设置成 SPI_Mode_Master)
17、引脚的输入模式
模拟输入 GPIO_AIN
用于AD转换
浮空输入 GPIO_IN_FLOATING
引脚处于浮空模式,电平状态是不确定的。外部信号输入什么,IO口就是什么状态。
上拉输入 GPIO_IPU
防止IO口出现不确定的状态,比如,当IO口悬空时,就会通过内部的上拉电阻将该点钳位在高电平。
下拉输入 GPIO_IPD
功能与上拉电阻类似,防止IO口出现不确定的状态,比如,当IO口悬空时,就会通过内部的下拉电阻将该点钳位在低电平。