学习日志
姓名:尤嘉慧 日期:2018.7.23
今日学习任务
|
|
今日任务完成情况
(详细说明本日任务是否按计划完成,开发的代码量) | 均已完成。 |
今日开发中出现的问题汇总
| 初次接触STM32系列的单片机,有点懵,此单片机管脚过多,功能复杂,编程有点困难,有点复杂。 |
今日未解决问题
| 无 |
今日开发收获
| 1.STM32属于一个微控制器,自带了各种常用通信接口,功能非常强 2.STM32的命名方法 3.如何分配原理图引脚 4.如何寻找引脚的功能说明 5数据手册中对引脚的功能定义 6.学习STM32的方法 7.点亮一个LED灯 #include "stm32f4xx.h" int main(void) { RCC_AHB1ENR |= (1 << 2);
GPIOC_MODER &= ~(3 << 2); GPIOC_MODER |= (1 << 2);
GPIOC_OTYPER &= ~(1 << 1);
GPIOC_OSPEEDR &= ~(3 << 2); GPIOC_OSPEEDR |= (2 << 2);
GPIOC_ODR |= (1 << 1); } 8.自己搭建一个固件库的方法 |
自我评价 (是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等) | 一些简单的练习能够做出,但是有一些小知识点遗忘了,不够熟练,需要多多实践练习! |
作业 | 整理涉及到的寄存器和固件库 1.RCC时钟控制寄存器(RCC_CR) 用来配置相关的时钟原的使能(如HSI,LSI)
2.RCC_PLL配置寄存器(RCC_PLLCFGR) 配置时钟树里的PLLCFGR里M,P,Q,R参数的大小
3.RCC时钟配置寄存器(RCC_CFGR) 配置AHB,一些分频系数和一些时钟源的选择
4.五个外设时钟使能寄存器 RCC_AHB1ENR RCC_AHB2ENR RCC_AHB3ENR RCC_APB1ENR RCC_APB2ENR 主要用来使能一些外设的时钟 5. GPIO 简介 每个通用 I/O 端口包括 4 个 32 位配置寄存器(GPIOx_MODER、GPIOx_OTYPER、GPIOx_OSPEEDR 、GPIOx_PUPDR), 2个32位数据寄存器(GPIOx_IDR 和GPIOx_ODR)、1个32位置位/复位寄存器(GPIOx_BSSR)、1个32位锁定寄存器(GPIOx_LCKR)和2个32位复用功能选择寄存器(GPIOx_AFRH和GPIOx_AFRL)。 6.GPIO工作模式 GPIO可以设置成一下模式 输入模式(上拉/下拉/浮空) 在输入模式时,施密特触发器打开, 输出被禁止。 数据寄存器每隔 1 个 AHB1 时钟周期更新一次,可通过输入数据寄存器GPIOx_IDR 读取 I/O 状态。其中 AHB1 的时钟如按默认配置一般为 180MHz。
输出模式(推挽/开漏,上拉/下拉) 在输出模式中, 输出使能,推挽模式时双 MOS 管以方式工作,输出数据寄存器GPIOx_ODR 可控制 I/O 输出高低电平。开漏模式时,只有 N-MOS 管工作,输出数据寄存器可控制 I/O 输出高阻态或低电平。 输出速度可配置,有 2MHz\25MHz\50MHz\100MHz的选项。此处的输出速度即 I/O 支持的高低电平状态最高切换频率,支持的频率越高,功耗越大,如果功耗要求不严格,把速度设置成最大即可。此时施密特触发器是打开的,即输入可用,通过输入数据寄存器 GPIOx_IDR 可读取I/O 的实际状态。用于输出模式时,可使用上拉、 下拉模式或浮空模式。但此时由于输出模式时引脚电平会受到 ODR 寄存器影响,而 ODR 寄存器对应引脚的位为 0,即引脚初始化后默认输出低电平,所以在这种情况下,上拉只起到小幅提高输出电流能力,但不会影响引脚的默认状态。
复用功能(推挽/开漏,上拉/下拉) 复用功能模式中,输出使能,输出速度可配置,可工作在开漏及推挽模式,但是输出信号源于其它外设,输出数据寄存器 GPIOx_ODR 无效;输入可用,通过输入数据寄存器可获取 I/O 实际状态,但一般直接用外设的寄存器来获取该数据信号。 用于复用功能时,可使用上拉、 下拉模式或浮空模式。同输出模式,在这种情况下,初始化后引脚默认输出低电平,上拉只起到小幅提高输出电流能力,但不会影响引脚的默认状态。
模拟输入输出 模拟输入输出模式中,双 MOS 管结构被关闭,施密特触发器停用,上/下拉也被禁止。其它外设通过模拟通道进行输入输出。 |