推荐阅读最新更新时间:2024-03-16 15:41
ARM芯片学习(S5PV210开发)——GPIO控制LED
1、GPIO介绍 GPIO(general purpose input output):通用输入输出。GPIO就是芯片的引脚,是比较特殊的引脚,可以通过代码来操作,控制引脚的高低电平以及工作模式。与GPIO相对的就是固定功能的引脚,我们不能通过编程来控制其功能,比如芯片的电源引脚、时钟引脚等,这些引脚的功能在出厂的时候就固定了。 2、S5PV210的GPIO相关寄存器 GPJ0CON, (GPJ0 control)GPJ0控制寄存器,用来配置各引脚的工作模式 GPJ0DAT, (GPJ0 data)当引脚配置为input/output模式时,寄存器的相应位和引脚的电平高低相对应。 GPJ0PUD, (pull up down)
[单片机]
STM32中CAN错误中断1
void can_signal(void) { unsigned char data can_irq; unsigned char data temp; x_wdgtime(); can_irq = InterruptReg; if(can_irq&ALI_Bit) { // 仲裁丢失位 ++al_counter; temp=ArbLostCapReg; // 读仲裁丢失寄存器 alc_current=temp&0x1F; // 获得当前仲裁丢失的位置 } if(can_irq & BEI_Bit) { // 总线错误中断 temp=ErrCodeCapReg; buse_current=temp&0x3
[单片机]
解读关于STM32问题集之BOOT0和BOOT1的作用
一、功能及目的 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。 BOOT1=x BOOT0=0 // 从用户闪存启动,这是正常的工作模式。 BOOT1=0 BOOT0=1 // 从系统存储器启动,这种模式启动的程序功能由厂家设置。 BOOT1=1 BOOT0=1 // 从内置SRAM启动,这种模式可以用于调试。 二、使用方法 一般BOOT0和BOOT1跳线都跳到0(地)。只是在ISP下载的情况下,BOOT0=1,BOOT1=0,下载完成后,把BOOT0的跳线接回0,也即BOOT0=0,BOOT1=0。 三、注意说明 一般不使用内置SR
[单片机]
RTOS在STM32中的应用
文章将介绍实时操作系统RTOS,分析为什么在嵌入式系统中使用它。 什么是实时操作系统 操作系统的定义: 一个计算机系统可以大致分为四个部分:硬件(Hardware),操作系统(operating system),应用程序(application programs),使用者(user)。 硬件包含了CPU,存储空间,输入输出设备等为整个系统提供了基础的计算资源。 操作系统是一个控制程序,作为硬件和应用程序之间的桥梁,主要是和硬件打交道,负责协调分配计算资源和内存资源给不同的应用程序使用,并防止系统出现故障。面对来自不同应用程序的大量且互相竞争的资源请求,操作系统通过一个调度算法和内存管理算法尽可能把资源公平,有效率地分配给不同的
[单片机]
Keil(MDK-ARM-STM32)系列教程(八)在线调试(Ⅰ)
Ⅰ、写在前面 Keil在线调试的内容有很多,本文带来在线调试常用的内容:Debug Toolbar调试工具栏( 复位、全速运行、停止运行、单步调试、逐行调试、跳出调试、运行到光标行、跳转到暂停行、调试窗口)快捷按钮的详细内容。 Keil工具栏总共有三种:文件工具栏(File Toolbar)、编译工具栏(Build Toolbar)、调试工具栏(Debug Toolbar)。编译工具栏只在编辑模式有效,调试工具栏只在调试模式下有效。文件工具栏在两种模式下都有效。 文件工具栏可以参看文章: Keil(MDK-ARM-STM32)系列教程(二)工具栏详细说明 . Ⅱ、本文要点 调试工具栏是我们在线调试时常用的工具栏(
[单片机]
基于STM32实现简单呼吸灯
01第一步; 打开STM32cubeMX软件(我使用的版本是4.18),新建项目,选择STM32F103R6Tx; 02第二步:然后对TIM1或者TIM2进行设置,本次我们使用TIM1做PWM实验,选择内部时钟作为定时器时钟; TIM2定时器的内部时钟 03第三步、STM32时钟配置保持默认不变,因为我们用proteus仿真来验证本次实验; 04第四步、然后对TIM1进行定时中断时间的设置 ,如下图所示: 05第五步:生成代码 06第六步:在keil中,修改代码。 添加两个变量 主函数中的代码 07第七步:在虚拟仿真软件proteus 8.8 版本,绘制出stm32f103的图纸,然后添加刚刚产生的hex文件
[单片机]
stm32定时器时间计算
STM32定时器的工作原理 STM32之所以能够实现定时,是单片机内部在计数脉冲(来自晶振) T=1/F (F为频率) 例如:我们以51单片机举例,假设单片机搭配12MHz的晶振,由于51单片机是12分频(即1个机器周期有12个时钟周期),则单片机的最小定时时间为 1 2 MHz / 2 = 1 MHz Tt = 1 / 1 MHz = 1 us 最小定时时间T=1/1MHz=1us 51单片机定时器: 方式0 13位最大定时时间间隔2^13=8.192ms 方式1 16位最大定时时间间隔2^16=65.536ms 方式2 8位最大定时时间间隔2^8=256us 由此我们知道对于
[单片机]
STM32开发笔记40: Keil链接时”No section matches selector“解决方法
单片机型号:STM32F070F6P6 首先指明,此问题是STM32CubeMX升级时造成的,我现在STM32CubeMX的版本是4.27.0,原先的版本生成的程序在Keil中打开是不报错的。 这个问题是链接错误,仔细查看工程目录就可以看见4.27.0版本生成的程序,在工程目录中缺少启动的汇编文件startup_stm32f070x6.s,只需将此文件加载到工程中,再重新生成,此问题就可以解决。
[单片机]