笔记-51,k60,stm32

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预分频系数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静安书以沫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值