学习日志
姓名:唐小玲 日期:2018.7.27
今日学习任务
|
|
今日任务完成情况
(详细说明本日任务是否按计划完成,开发的代码量) |
均已完成。 |
今日开发中出现的问题汇总
|
初次接触STM32系列的单片机,有点懵,此单片机管脚过多,功能复杂,编程有点困难,有点复杂。 |
今日未解决问题
|
无 |
今日开发收获
|
1.I/O配置的步骤-输出模式 定义一个端口结构体变量 GPIO_InitTypeDef GPIO_InitStructure; 开启端口对应的时钟 RCC_AHB1PeriphClockCmd(RCC_ALL_LED, ENABLE); 填充结构体数据 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; /* 设为输出口 */ GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; /* 设为推挽模式 */ GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; /* 上下拉电阻不使能 */ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; /* IO口最大速度 */ GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED1; 完成初始化 GPIO_Init(GPIO_PORT_LED1, &GPIO_InitStructure); 2.输出控制 库函数: • GPIO_SetBits (GPIOx, GPIO_Pin) • GPIO_ResetBits (GPIOx, GPIO_Pin) • GPIO_ToggleBits(GPIOx, GPIO_Pin) • 寄存器模式: • GPIOx->BSRRL = GPIO_Pin; //置高 • GPIOx->BSRRH = GPIO_Pin; //置低 • GPIOx->ODR ^= GPIO_Pin; //取反 3.输出控制----位带操作 // 把“位带地址+位序号”转换成别名地址的宏 • #define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x02000000+((addr & 0x000FFFFF)<<5)+(bitnum<<2))
• // 把一个地址转换成一个指针 • #define MEM_ADDR(addr) *((volatile unsigned long *)(addr))
• // 把位带别名区地址转换成指针 • #define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum)) |
自我评价 (是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等) |
一些简单的练习能够做出,但是有一些知识点难以理解,不够通透,需要多多实践练习! |
作业 |
无 |