摘要:背景:因ST系列MCU在行业中应用最广,故本文以ST的MCU的GPIO进行详细讲解每一种功能应用类型的使用。 一、STM32F10X 引脚说明 STM32F103ZET6一共有7组IO口,每组IO口有16个IO,分别为GPIOA~GPIOG,每组分别为PA0到PA16,STM32F103RCT6一个
阅读全文
摘要:一 位域的形式有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几 个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位域来表示。注:因编译平台的不同,数据类型的长度也可能有异,以下int代表16Bit型。1、位域的定义和位域变量的说明位域定义与结构定义相仿,其形式为:struct 位域结构名{ 位域列
阅读全文
摘要:预备课:深刻理解大端模式与小端模式的概念。大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节存放在高地址中。小端模式(Little_endian):字数据的高字节存储在高地址中,而字数据的低字节存放在低地址中。例:0x12345678在内存中的存储为例:大端模式内存布局:| 0x78 | 0x56|0x34 | 0x12 |--------------->高地址小端模式内存布局:| 0x12 | 0x34 | 0x56 | 0x78 |--------------->高地址但我们如何判别当前系统为大端模式还是小端模式呢?方法1:INT32U i = 0
阅读全文
摘要:如何测试处理器的硬件错误中断是否有效或者使处理器强制进入硬件错误中断呢?其实处理器发生硬件错误中断的原因同时是因为往非法地址写值而造成的,比如堆栈溢出或数组溢出进入硬件错误中断都是往非法地址写值造成的。记住: 硬件错误中断通常并不是处理器外设配置出错造成的,可不要被名字给误解如(STM32处理器):0xFFFFFFFF是非法区域。*(unsignedint*)(0xFFFFFFFF)=0x55;编译运行之后,程序马上会进入硬件错误中断。作者:tdyizhen1314 (现从事LED行业,专注于户外大型LED显示屏控制系统的研发,希望与大家一起交流,共同进步)邮箱:495567585@qq.co
阅读全文
摘要:图片可以在下面的博客中看到.转自:http://blog.csdn.net/bigloomy/article/details/6633008可能有不少读者会问,字节对齐有必要拿出来单独写一篇博客嘛?我觉得是很有必要,但是它却是被很多人所忽视的一个重点。那么我们使用字节对齐的作用和原因是什么呢?由于硬件平台之间对存储空间的处理上是有很大不同的,一些平台对某些特定类型的数据只能从某些特定地址开始存取,如通常有些架构的CPU要求在编程时必须保证字节对齐,否则访问一个没有进行字节对齐的变量的时候会发生错误。而有些平台可能没有这种情况,但是通常的情况是如果我们编程的时候不按照适合其平台要求对数据存放进行
阅读全文
摘要:STM32学习笔记(7):USART串口的使用2011年4月19日 USART串口通信1. 串口的基本概念在STM32的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。还可以使用DMA方式,实现高速数据通信。USART通过3个引脚与其他设备连接在一起,任何US
阅读全文
摘要:STM32学习笔记(6):LCD的显示2011年4月14日 LCD显示1. LCD/LCM的基本概念液晶显示器(Liquid Crystal Display: LCD)的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。LCM(LCD Module)即LCD显示模组、液晶模块,是指将液晶显示器件,连接件,控制与驱动等外围电路,PCB电路板,背光源,结构件等装配在一起的组件。在平时的学习开发中,我们一般使用的是LCM,带有驱动IC和LCD屏幕等多个模块。2. FSMC的基本概念在STM32上开发LCD
阅读全文
摘要:STM32学习笔记(4):通用定时器基本定时功能 2011年3月29日 TIMER基本定时功能1. STM32的Timer简介STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick,看门狗定时器以后再详细研究。今天主要是研究剩下的8个定时器。其中TIM1和TIM8是能够产生3对PWM互补输出的高级登时其,常用于三相电机的驱动,时钟由APB2的输出产生。TIM2-TIM5是普通定时器,TIM6和TIM7是基本定时器,其时钟由APB1输出产生。由于STM32的TIMER功能太
阅读全文
摘要:STM32学习笔记(5):通用定时器PWM输出2011年3月30日 TIMER输出PWM1. TIMER输出PWM基本概念脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。一般用来控制步进电机的速度等等。STM32的定时器除了TIM6和TIM7之外,其他的定时器都可以用来产生PWM输出,其中高级定时器TIM1和TIM8可以同时产生7路的PWM输出,而通用定时器也能同时产生4路的PWM输出。1.1 PWM输出模式STM32的PWM输出有两种模式,模式
阅读全文
摘要:STM32学习笔记(3):系统时钟和SysTick定时器2011年3月21日 系统时钟和SysTick定时器1. STM32的时钟系统在STM32中,一共有5个时钟源,分别是HSI、HSE、LSI、LSE、PLL(1)HSI是高速内部时钟,RC振荡器,频率为8MHz;(2) HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围是4MHz – 16MHz;(3)LSI是低速内部时钟,RC振荡器,频率为40KHz;(4)LSE是低速外部时钟,接频率为32.768KHz的石英晶体;(5) PLL为锁相环倍频输出,严格的来说并不算一个独立的时钟源,PLL的输入可以接HSI/2、HSE
阅读全文
摘要:STM32学习笔记(2):外部中断的使用2011年3月20日 外部中断中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加复杂。今天就将来探讨一下关于STM32中的中断系统。1 基本概念ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位。STM3
阅读全文
摘要:STM32学习笔记(1):GPIO口的使用2011年3月19日 顺序点亮LED灯摸索了很久之后终于把ARM开发板上的LED灯点亮了,虽然是很简单的一个IO口操作,但是由于以前从来都没有什么经验,所以浪费了很多时间,也查找了很多资料。现在可以操作IO口了,证明迈出了学习ARM的第一步。实验平台清单如下:开发板: 奋斗STRIVE V3核心芯片: STM32F103VET6开发环境: RealView MDK-ARM Version:3.50PC操作系统: Windows 7 家庭普通版仿真器: SEGGER J-Link其中,STM32F103VET6芯片是基于ARM Cortex-M3内核的,
阅读全文
摘要:最近公司需要使用一种新型的光感器件,TSL235,此器件类似于我们平时最经常用的直插好式三极管8050封装,TSL235通过感知外界光强的变化,输出50%占空比的方波,用户可以通过其输出的方波频率来获知外界的光强。优点:精准 反应灵敏 抗干扰性强 稳定性高 操作简单附:TSL235数据手册http://wenku.baidu.com/view/4b7fcbbcc77da26925c5b0b9.html注:从数据手册上可以看到TSL235的供电建议为5V,范围从2.7V-6V,可实际使用中发现当使用3.3V的供电其输出会更稳定,呈现完美的50%占空比,而使用5V供电时其输出波形变化系数相对而言较
阅读全文