stm32F10x 看程序知识点记录

来源:互联网 发布:免费微场景制作软件 编辑:程序博客网 时间:2024/05/20 06:52

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特性

12位逐次逼近型ADC;
多达18个多路采样通道(16个外部、2个内部信号源;
不同通道可以工作于单次、连续、扫描、间断模式
转换结果(左对齐、或右对齐)存储在16位数据寄存器中
具有看门狗,用于检测输入电压是否超出(用户定义的)高、低阈值
时钟最大值14MHz(对PCLK2时钟分频产生)
能够产生中断事件:转换结束、注入(Injectedconversion)转换结束、看门狗事件
各通道均可编程设定采样时间
多种外部触发选项:适用于常规转换和注入转换
常规通道转可发出DMA请求

转换范围:0~3.6V  (3.6v---->当你需要将采集的数据用电压来显示的话:设你采集的数据为:x[0~4095],此时的计算公式就为:(x / 4096) * 3.6)

ADC使用介绍:http://bbs.elecfans.com/jishu_464666_1_1.html

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口悬空时,就会通过内部的拉电阻将该点钳位在电平。 








0 0