stm32
文章平均质量分 66
wss_desperado
这个作者很懒,什么都没留下…
展开
-
stm32f103 学习笔记 —— 01 使用地址、寄存器、库函数、位带操作控制GPIO
GPIO相关寄存器:端口配置低寄存器(CRL)、端口配置高寄存器(CRH):控制每个I/O口的模式及输出速率端口输入数据寄存器(IDR):只读,只能以16位形式读出,用来查看某个位的状态端口输出数据寄存器(ODR):可读/写,读——判断当前I/O口输出状态,写——控制某个I/O口输出电平外设时钟使能寄存器(RCC_xxxENR):任何时候配置STM32外设时都要先使能该外设的时钟使用地址操作控制G...原创 2018-05-19 18:03:25 · 3687 阅读 · 0 评论 -
stm32f103 学习笔记 —— 02 程序的可移植性
1.定义带参宏:eg:#define PortIO(bitnum) *(unsigned int*)(( addr & 0xF0000000 ) + 0x02000000 + (( addr & 0x00FFFFFF )<<5 ) + ( bitnum<<2 )) 2.使用宏定义代替函数中与硬件有关的变量3.宏定义函数:eg:#define GPIO_...原创 2018-05-19 18:03:37 · 582 阅读 · 0 评论 -
stm32f103 学习笔记 —— 05 使用SysTick实现硬件延时
SysTick 定时时间计算(当系统时钟为72M时)t = reload * ( 1 / Clk )Clk = 72M时,t = ( 72 ) * ( 1 / 72M ) = 1 usClk = 72M时,t = ( 72000 ) * ( 1 / 72M ) = 1 ms1s = 1000ms = 1000 000 us = 100 000 000 ns当Systick中断与外设中断进行优先级比...原创 2018-05-19 18:04:11 · 829 阅读 · 0 评论 -
stm32f103 学习笔记 —— 03 通过IDR循环检测实现按键检测
1.通过IDR寄存器循环检测bsp_key.h#ifndef __BSP_KEY#define __BSP_KEY#include "stm32f10x.h"#define GPIO_KEY1_PORT GPIOA #define GPIO_KEY1_PIN GPIO_Pin_0#define GPIO_KEY1_CLK RCC_APB2...原创 2018-05-19 18:03:49 · 962 阅读 · 0 评论 -
stm32f103 学习笔记 —— 04 通过事件中断实现按键检测
1.通过事件中断实现按键检测配置NVIC的顺序:使能中断请求配置中断优先级分组配置NVIC寄存器,初始化NVIC_InitTypeDef编写中断服务函数事件中断编程思路:初始化要连接到EXTI的GPIO初始化EXTI用于产生中断/事件初始化NVIC用于处理中断编写中断服务函数main函数初始化要连接到EXTI的GPIO、初始化EXTIvoid EXTI_KEY1_CONFIG(void){ ...原创 2018-05-19 18:04:00 · 4281 阅读 · 0 评论 -
stm32f103 学习笔记 —— 06 串口USART
编程要点:初始化串口需要用到的GPIO初始化串口,USART_InitTypeDef中断配置(接收中断,中断优先级)使能串口编写发送和接收函数编写中断服务函数宏:// 串口1-USART1#define DEBUG_USARTx USART1#define DEBUG_USART_CLK RCC_APB2Periph_USA...原创 2018-05-19 18:04:24 · 3592 阅读 · 0 评论 -
stm32f103 学习笔记 —— 07 CAN通讯协议
1.报文种类 数据帧 :用于节点向外传送数据 遥控帧 :用于向远端节点请求数据 错误帧 :用于向远端节点通知校验错误,请求重新发送上一个数据 过载帧 :用于通知远端节点本节点尚未做好接受准备 帧间隔 :用于将数据帧及遥控帧与前面的帧分离开来 2.报文结构(以数据帧为例)以一个显性位(逻辑0)开始,以7个连续的隐性位(逻辑1)结束 帧起始(...原创 2018-09-25 15:03:34 · 1291 阅读 · 1 评论