51

0-16h
1-0ch
2-18h
3-5eh
4-08h
5-1ch
6-5ah
7-42h
8-52h
9-4ah
开关-45h
mode-46h
静音-47h
快退-40h
快进-43h
音量减-15H
音量加-09h
rpt-19h
u/sd-0dh

k60

PLL_Init(PLL180); //初始化PLL为180M//时钟
GPIO_Init(PORTC,17,GPO,0); //端口初始化
GPIO_Reverse (PORTA, 17); //取反函数
EXTI_Init(PTB,20,falling_down); //外部中断初始化
FTM为一种多功能定时器模块,有多个时钟,包括system clock,主要进行PWM输出,输入捕捉,输出比较,定时中断,
脉冲加减计数,脉冲周期脉宽测量。多用于pwm调速,多用system clock。MCG模块输出的MCGOUTCLK,再由SIM模块分
配后得到的Bus Clock。如果我们选择由FTM实现对外部脉冲的计数,
也可选择外部时钟,如果是外部编码器输入的AB相脉冲,用于电机正反转测速
,则可以使用PHA和PHB输入,由计数器自动加减计数。
pwm调速,周期越大,频率越小,反应越快。
pll为内核提供时钟,bus片上外设多用的时钟。90M/65536=1.37KHZ=1370HZ
最大1370Hz,当所需频率太大,可二分频、2的N次方(4/8/16)分频。
dma直接内存存取。
adc转换器相当于一个电表。测电压
adc_init(adc0); //初始化,开启时钟
k60有2个adc转换器.
adc_ave(ADC0,ADC0_SE1,ADC_12bit,100);//ADC_12bit精度选择,100滤波次数,
//100次ADC转换,计算出平均值返回
//精度多用12bit
//重点注意,有返回值。
adc_once((ADC0,ADC0_SE1,ADC_12bit); //ADC_12bit);一次转换
上位机是指可以直接发出操控命令的计算机,一般是PC
屏幕上显示各种信号变化(液压,水位,温度等)
下位机是直接控制设备获取设备状况的计算机,
一般是PLC/单片机之类的。
SCCB串行摄像机控制总线协议

stm32

ARM:Advanced RISC Machine
AAPCS:ARM Architecture Process call standard
ARM 体系结构过程调用标准
RISC: Reduced Instruction Set Computer 精简指令集计算机
RTOS:Real Time Operating System 实时操作系统
DMA:Direct Memory Access 存储器直接访问
EXTI: External Interrupts 外部中断
FSMC: Flexible static memory controller 可变静态存储控制器
FPB:flash patch and breakpoint FLASH 转换及断电单元
HSE:Hign speed external
HSI: High speed internal
LSE: Low Speed external
LSI: Low Speed Internal
LSU: load store unit 存取单元
PFU: prefetch unit 预取单元
ISR:Interrupt Service Routines 中断服务程序
NMI: Nonmaskable Interrupt 不可屏蔽中断
NVIC: Nested Vectored Interrupt Controller 嵌套向量中断控制器
MPU: Memory Protection Unit 内存保护单元
MIPS:million instructions per second 每秒能执行的百万条指令的条数
RCC:Reset and clock control 复位和时钟控制
RTC: Real-Time Clock 实时时钟
IWDG: independent watchdog 独立看门狗
WWDG:Window watchdog 窗口看门狗
TIM:timer 定时器
GAL:generic array logic 通用阵列逻辑
PAL:programmable array logic 可编程阵列逻辑
ASIC:Application Specific Integrated Circuit 专用集成电路
FPGA:Field-Programmable Gate Array 现场可编程门阵列
CPLD:Complex Programmable Logic Device 可编程逻辑器件
端口
AFIO:alternate function IO 复用 IO 端口
GPIO:general purpose input/output 通用 IO 端口
IOP(A-G):IO port A - IO port G (例如:IOPA:IO port A)
CAN:Controller area network 控制器局域网
FLITF:The Flash memory interface 闪存存储器接口
I2C: Inter-integrated circuit 微集成电路
IIS: integrate interface of sound 集成音频接口
JTAG:joint test action group 联合测试行动小组
SPI:Serial Peripheral Interface 串行外围设备接口 SDIO: SD I/O
UART: Universal Synchr./Asynch. Receiver Transmitter 通用异步接收/发送装置
USB: Universal Serial Bus 通用串行总线
寄存器相关
CPSP: Current Program Status Register 当前程序状态寄存器
SPSP: saved program status register 程序状态备份寄存器
CSR:clock control/status register 时钟控制状态寄存器
LR: link register 链接寄存器
SP: stack pointer 堆栈指针
MSP: main stack pointer 主堆栈指针
PSP:process stack pointer
在STM32的固件库中定义了三个结构体与这三个寄存器组相对应,这三个结构体与ARM手册中寄存器的对应关系如下:
一、NVIC寄存器组
STM32的固件库中有如下定义:
typedef struct
{
vu32 ISER[2];
u32 RESERVED0[30];
vu32 ICER[2];
u32 RSERVED1[30];
vu32 ISPR[2];
u32 RESERVED2[30];
vu32 ICPR[2];
u32 RESERVED3[30];
vu32 IABR[2];
u32 RESERVED4[62];
vu32 IPR[11];
} NVIC_TypeDef;
它们对应ARM手册中的名称为
ISER = Interrupt Set-Enable Registers
ICER = Interrupt Clear-Enable Registers
ISPR = Interrupt Set-Pending Register
ICPR = Interrupt Clear-Pending Register
IABR = Active Bit Register
IPR = Interrupt Priority Registers
每个寄存器有240位,以Interrupt Set-Enable Registers说明,ISER[0]对应中断源031,ISER[1]对应中断源3263,STM32只有60个中断源,所以没有ISER[2:7]。
参考STM32技术参考手册中的中断向量表,中断源的位置为:
位置0 - WWDG = Window Watchdog interrupt
位置1 - PVD = PVD through EXTI Line detection interrupt
位置2 - TAMPER = Tamper interrupt

位置58 - DMA2_Channel3 = DMA2 Channel3 global interrupt
位置59 - DMA2_Channel4_5 = DMA2 Channel4 and DMA2 Channel5 global interrupts
二、系统控制寄存器组
STM32的固件库中有如下定义:
typedef struct
{
vuc32 CPUID;
vu32 ICSR;
vu32 VTOR;
vu32 AIRCR;
vu32 SCR;
vu32 CCR;
vu32 SHPR[3];
vu32 SHCSR;
vu32 CFSR;
vu32 HFSR;
vu32 DFSR;
vu32 MMFAR;
vu32 BFAR;
vu32 AFSR;
} SCB_TypeDef; /* System Control Block Structure */
它们对应ARM手册中的名称为
CPUID = CPUID Base Register
ICSR = Interrupt Control State Register
VTOR = Vector Table Offset Register
AIRCR = Application Interrupt/Reset Control Register
SCR = System Control Register
CCR = Configuration Control Register
SHPR = System Handlers Priority Register
SHCSR = System Handler Control and State Register
CFSR = Configurable Fault Status Registers
HFSR = Hard Fault Status Register
DFSR = Debug Fault Status Register
MMFAR = Mem Manage Address Register
BFAR = Bus Fault Address Register
AFSR = Auxiliary Fault Status Register
三、系统时钟寄存器组
STM32的固件库中有如下定义:
typedef struct
{
vu32 CTRL;
vu32 LOAD;
vu32 VAL;
vuc32 CALIB;
} SysTick_TypeDef;
它们对应ARM手册中的名称为
CTRL = SysTick Control and Status Register
LOAD = SysTick Reload Value Register
VAL = SysTick Current Value Register
CALIB = SysTick Calibration Value Register

void beep_init_mini()//PA1 PAout(1) PAin(1)
{
GPIO_InitTypeDef a;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
a.GPIO_Pin = GPIO_Pin_1;
a.GPIO_Mode = GPIO_Mode_Out_PP;
a.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &a);
GPIO_ResetBits(GPIOA,GPIO_Pin_1);
}

void EXTI0_IRQHandler(void)
{
delay_ms(10);
if(PAin(0)==0)
{
PCout(13)=!PCout(13);
}
EXTI_ClearITPendingBit(EXTI_Line0);
}
//外部中断服务函数
//函数名固定,类似51中interrupt 1,相当于一个标志

void extix_init_mini(void)
{
EXTI_InitTypeDef b;
NVIC_InitTypeDef c;
key_init_mini();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //使能复用功能时钟
//PA(0)
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);
b.EXTI_Line=EXTI_Line0;
b.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_Init(&b);
c.NVIC_IRQChannel =EXTI0_IRQn;
c.NVIC_IRQChannelPreemptionPriority = 0x02;
c.NVIC_IRQChannelSubPriority = 0x03;
c.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&c);
}
//EXTIX_Init是外部中断初始化,总体
//EXTI_Init是配置exti寄存器(中短线,中断模式,触发方式),局部

void key_init_mini()//PA0 PAout(0) PAin(0)
{
GPIO_InitTypeDef a;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
a.GPIO_Pin = GPIO_Pin_0;
a.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOA, &a);
}

u8 key_Scan_mini(u8 mode)
{
static u8 key_up=1;//是否连按,1是,0否
if(mode)key_up=1;
if(key_up&&(PAin(0)==0))
{
delay_ms(10);
key_up=0;
if(PAin(0)==0)return 1;
}else if(PAin(0)==1)key_up=1;
return 0;
}

void led_init_mini()//pc13 PCout(13) PCin(13)
{
GPIO_InitTypeDef a;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
a.GPIO_Pin = GPIO_Pin_13;
a.GPIO_Mode = GPIO_Mode_Out_PP;
a.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &a);
GPIO_SetBits(GPIOC,GPIO_Pin_13);
}

PP推挽
OD开漏
AF复用
MODE模式
PIN引脚
pull上拉或下拉
speed频率(速度)
RESETE低电平
SETE高电平
GPIO引脚,端口
UART串口(RX,TX)
NVIC中断优先级设置
instance基地址
baudrate波特率
wordkength字长
stopbits停止位
adc模数转换器
Buffer缓存器
enable使能
status状态
uart通用异步收发器
usart通用同步异步收发器
rcc时钟控制器
IT中断
config配置,映射
cmd使能
preemptionpriority设置优先级
subpriority设置子优先级
rxne接受缓冲器非空
Channel通道
Prescaler预分频器
CounterMode计数器模式
Period周期
ClockDivision时钟分频
arr自动装载值
psc预分频系数

笔记-51,k60,stm32相关推荐

  1. 入门单片机选择51还是stm32?入门单片机有哪些好的教学视频?

    不知道大家还记不记得自己小学时候自己的梦想? 有人想成为医生.有人想成为医生,有人想成为飞行员,而我想成为发明家. 可能真是我这种想法,也导致我的性格从小就比较内向,毕业出来以后也从事技术. 人生的上 ...

  2. LeetCode—笔记—51、N皇后——递归回溯,个人思路,简单易懂

    LeetCode-笔记-51.N皇后--递归回溯,个人思路,简单易懂 51. N 皇后 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给你一个整数 ...

  3. 如何安装KEIL并配置好51与STM32的环境

    Keil编辑和STM32cubemx配置STM32控制步进电机 \\\插播一条:文章末尾有惊喜哟~/// 使用Keil ARM V5 IDE编程和STM32CUBEMX代码配置实现STM32F103和 ...

  4. 考研数学笔记 51~55

    考研数学笔记 51~55

  5. 51单片机STM32交通灯红绿灯十字路口信号灯类设计功能要求汇总

    51单片机STM32交通灯红绿灯十字路口信号灯类设计功能要求汇总 浏览必读: 使用关键词搜索可以达到事半功倍的效果. 电脑浏览器CTRL+F可以使用搜索查找 设计编号J000 功能说明: 1.四路交通 ...

  6. 51与STM32单片机架构(内核和片上外设)的区别汇总+拓展

    ** 单片机简介** 单片微型计算机简称单片机,简单来说就是集CPU(运算.控制).RAM(数据存储-内存).ROM(程序存储).输入输出设备(串口.并口等)和中断系统处于同一芯片的器件,在我们自己的 ...

  7. 单片机51和stm32编程步骤一样吗?

    我是在10年前自学的单片机. 那个时候主要是学的51单片机入门的,从零基础到靠这个找到工作前后大概花了3-5个月左右,具体多久我忘记了. 当时竞争还没现在这么大,很多新型的单片机也还没出来,所以选择相 ...

  8. 《剑指 Offer I》刷题笔记 51 ~ 61 题

    <剑指 Offer I>刷题笔记 51_60 位运算(简单) 51. 二进制中 1 的个数 _解法1:逐伟判断 解法2:巧用 n&(n-1) 52. 不用加减乘除做加法(背题) 解 ...

  9. 【单片机笔记】基于STM32的8通道的开源无线遥控器手柄

    MARS STM32遥控器v1.0 MARS STM32遥控器v1.0.................. 1 1.遥控器简介........................... 1 2.硬件详解. ...

  10. STM32寄存器编程思路 - 从51到stm32开发入门,真干货

    本文转自 https://www.amobbs.com/thread-5462507-1-3.html 第23楼 尊重原作不做任何修改 =============以下正文=============== ...

最新文章

  1. iPhone 7 256GB版停售原因分析
  2. 4.3.6 无分类编址CIDR(构成超网)
  3. windows连接远程Hadoop/Spark
  4. 野火Linux开发板接入华为云,Huawei_LiteOS——STM32F1移植(野火开发板)
  5. 刚装的fedora16测试时出现莫名包
  6. 求助:为什么我用360浏览器和UC浏览器打不开JAVA中的index.html文件? 一打开就显示浏览器首界页...
  7. 灰度发布 java_灰度发布系统的实现步骤
  8. STM32智能小车电路综合实习报告
  9. 比较全的敏捷概念知识总结
  10. web渗透的信息收集
  11. PAT乙级1050 螺旋矩阵
  12. C语言1066字符类型统计,C语言编译过程及数据类型
  13. 人类第一位女教授的传奇一生
  14. html另存为对话框,前端实现弹出“另存为”对话框的三种方式
  15. 华为G9怎么找到云相册_华为G9 Plus图赏:全方位均衡的中端机
  16. Java高并发程序设计入门
  17. 蓝牙耳机啥牌子好?口碑好、音质好的蓝牙耳机推荐
  18. 18-Jenkisn-Pipelin-声明式流水线语法-triggers/stage/tool
  19. GoDaddy的成功不是偶然
  20. 商业模式OR监管力度,真人视频社区向左OR向右?

热门文章

  1. 创建 telegram 账号群组 搜索引擎
  2. 仿win7 aero_在Windows 7中获取Aero风格的经典开始菜单
  3. linux安装ipk游戏,添加软件包 IPK
  4. JavaScript锅打灰太狼游戏
  5. OSX与iOS系统架构
  6. java屠龙_倚天屠龙之江湖神器
  7. 电子元器件简介——场效应管篇
  8. 微信小程序自动化测试——智能化 Monkey
  9. revit二次开发概念_Revit二次开发教程:BIM自学入门Revit二次开发
  10. Python教你实现微信防撤回~