近日调试STM32的SPI程序,现在记录下自己的一点小理解。
STM32之SPI_CR1寄存器的SSM, SSI位理解
SSM位,启用或禁止软件从设备选择。SSM置位时,NSS输入引脚的电平将被SSI的值代替。
SSI位,在SSM=1时有意义,决定NSS引脚上的电平,NSS引脚上的IO值将忽略。
NSS输入分为硬件输入和软件控制输入两种模式。NSS有内部和外部引脚。当NSS是软件控制输入模式时,NSS的内部引脚和外部引脚断开。内部引脚通过SPI_CR1寄存器的SSI位来驱动,外部引脚留作他用(可以作为GPIO驱动从设备的片选信号)。
当SSM位置位使能时,启用软件从设备选择,也就是软件控制输入模式。外部引脚PA4/SPI1_NSS上的值将不能选择STM32F103作为SPI从机。PA4/SPI1_NSS还可以设为输出口,用来控制SPI从设备。
关键字:STM32 寄存器 SSM SSI
引用地址:
STM32之SPI_CR1寄存器的SSM, SSI位理解
推荐阅读最新更新时间:2024-03-16 14:59
基于STM32 MCU的太阳能:LED街灯解决方案
随着化石类能源的日益减少,以及温室气体的过度排放导致全球变暖问题越来越受到重视,人们一方面在积极开发各类可再生新能源,另一方面也在倡导节能减排的绿色环保技术。太阳能作为取之不尽、用之不竭的清洁能源,成为众多可再生能源的重要代表;而在照明领域,寿命长、节能、安全、绿色环保、色彩丰富、微型化的LED固态照明也已被公认为世界一种节能环保的重要途径。太阳能-LED街灯同时整合了这两者的优势,利用清洁能源以及高效率的LED实现绿色照明。本文介绍的太阳能-LED街灯方案,能自动检测环境光以控制路灯的工作状态,最大功率点追踪(MPPT)保证最大太阳能电池板效率,恒电流控制LED,并带有蓄电池状态输出以及用户可设定LED工作时间等功能。 系统结构与
[单片机]
MCS-51单片机的程序状态寄存器PSW的作用是什么?
MCS-51单片机的程序状态寄存器PSW的作用是什么?常用标志有哪些位?作用是什么? 答:PSW是一个8位寄存器,用于设定CPU的状态和指示指令执行后的状态。 CY(PSW.7):进位标志。在执行加减运算指令时,如果运算结果的最高位(D7)发生了进位或借位,则CY由硬件自动置1。 AC(PSW.6):半进位标志位,也称为辅助标志位。在执行加减运算指令时,如果运算结果的低半字节(D3)发生了向高半字节进位或借位,则AC由硬件自动置1。 F0、F1(PSW.5 和PSW.1):用户标志位。用户可以根据需要对F0、F1赋予一定的含义,由用户置1和清0,作为软件标志。 RS1、RS0(PSW.4 和PSW.3):工作寄存器组选
[单片机]
stm32数据类型
stm32编程过程经常定义变量类型,经常担心数据运算过程中 超过变量类型范围。因为在编程过程中,不同的CPU,其数据类型的意义各不相同,所以一定要注意相应变量数据类型的定义和转换,否则在计算中可能会出现不确定的错误。所以下面列出常见数据类型: 一、C语言数据类型 stm32使用的数据类型定义在 stm32f30x.h中 This file contains all the peripheral registers definitions, bits * definitions and memory mapping for STM32F30x devices. 整型定义: #include core_cm
[单片机]
STM32笔记(五)---中断应用
一、异常类型 1-1 定义说明 F103 在内核水平上搭载了一个异常响应系统, 支持为数众多的系统异常和外部中断。其中系统异常有 8 个(如果把 Reset 和 HardFault 也算上的话就是 10 个) ,外部中断有 60个。除了个别异常的优先级被定死外,其它异常的优先级都是可编程的。有关具体的系统异常和外部中断可在标准库文件 stm32f10x.h 这个头文件查询到,在 IRQn_Type 这个结构体里面包含了 F103 系列全部的异常声明。 表格 1 系统异常清单 二、NVIC简介 2-1 定义说明 NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。但是各个芯
[单片机]
STM32串口在首次发送字符的时候,首字符丢失解决办法
网上关于发送字符的代码大多如下: USART_SendData(USART1, (uint8_t)ch); while( USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET); 其实咋一看是说的通的,但是在仔细看手册的时候发现 TC 和 TXE 标志位在复位的时候被置1 ,这样第一次while循环就是没有用的。这样导致了首次第一个字符还没有被输出,就被后面的字符覆盖掉,造成实际看到的丢失现象。解决办法就很简单:在前面加上一句 USART1- SR; 具体代码如下: USART1- SR; USART_SendData(USART1, (uint8_t)ch); while( USAR
[单片机]
MSP430单片机标准寄存器和bit位的定义
一、标准bit位定义(STANDARD BITS) : WORD:字 15 14 7 1 0 BIT15
[单片机]
一种基于STM32的光功率计的设计与实现
1、引言 针对目前市场上传统的光功率计动态范围小、测试精度低、非线性误差明显、档位切换速度慢等缺点,设计了一款基于STM32的高精度光功率计,采用先进的大动态波长响应范围的INGAAS-PIN光电探测器,配合使用ADI公司的光电前置放大器AD795,TI公司的24位模数转换器ADS1232和美信公司的高速多路模拟开关MAX4051进行系统的设计,利用STM32控制放大量程增益自动切换技术,消除光电探测器在同一波长不同光强下对光的非线性响应导致的测量误差,可以大大提高光功率计测试的精度和可靠性。 2、系统工作原理 系统的原理框图如图1所示,INGAAS-PIN光电探测器将检测到光信号转变为电流信号,进行I/V(电流电压)变换后输
[单片机]
如何利用定时器产生PWM波
摘要:利用定时器产生PWM波。然后利用32的外部中断和定时器来测量32输出的波形硬件:STM32F103C8T6核心板、示波器、串口调试助手所用到的的引脚为PA8和PA0。 测量方案:在第一次外部中断(上升沿触发)到之时,开启定时器,同时计数器清零。然后等待第二次中断到来,在第二次外部中断(上升沿触发)到之时,获取计数器的计数值,同时关闭计数器。因为知道了计数器计数一个数的时间,所以在第二次外部中断(上升沿触发)到之时,获取计数器的计数值,通过这个值就知道一个脉冲的时间周期。时间周期的倒数就是外部信号的频率。 一、利用TIM1的CH1产生PWM波 pwm.c #include pwm.h voidTIM1_PWM_Init
[单片机]