推荐阅读最新更新时间:2024-10-27 11:58
有关STC15W系列硬件SPI的配置问题
器件的SPI时序图如上。使用STC15W单片机SPI,和这个器件进行通信。 STC15W的寄存器配置如下: 最后开始初始化程序的代码。 AUXR1 = AUXR1| 0X04; SPDAT = 0; SPSTAT = 0xC0; SPCTL = 0xD0; 第一:设置硬件SPI的引脚使用情况。配置寄存器 AUXR1的bit3,bit2就可以完成。另外为了防止对该寄存器的其他bit位进行误操作,使用了或的运算。 第二:向数据寄存器写入0,然后再向SPSTAT寄存器写入,清除SPI传输完成标志和SPI写冲突标志。 第三:确定主机模式,根据器件的SPI时序图,确定CPOL和CPHA。最后得到寄存器
[单片机]
单片机学习札记之7 STC15W系列的ADC配置
ADC了,STC151K16PWM的ADC是1个10位的,有8个通道,我偶们这个小时钟,只用到了三路AD,分别是P1.5,P1.6,P1.7,其中,P1.5引脚是测电池电压的,P1.6是测温度的,P1.7是测光线强弱的。我们拿ADC5来举例说明下,ADC的配置步骤。 在使用ADC之前,首先第一步要配置IO口为高阻输入,也就是电流既不能流入也不能流出,配置如下: 第二是对ADC进行初始化,设置模拟口位 因为我们的要求不高,进行测试的时候,ADC转换设置540个时钟就可以了,也就是完成一次ADC转换,需要540个时钟的时间才可以。 我们是在用中断的方式获得ADC的结果,并保存到temp里。 但是我们读取到的
[单片机]
STC15W系列单片机自带的ADC使用方法以及时需要注意的问题
以下代码和文字说明,参考了STC公司提供的技术手册(STC15.pdf)。 具体代码如下: #include #include init.h #include led.h #include buzzer.h #include delayms.h #include uart.h //ADC_CONTR寄存器的位取值 #define ADC_POWER 0x80 //打开ADC转化器电源 #define ADC_FLAG 0x10 //ADC完成标志位 #define ADC_START 0x08 //ADC开始控制位 #define ADC_SPEEDLL 0x00 //540个
[单片机]
STC15W通过SPI方式读取RM3100数据
近日接手一个项目,要求在STC单片机上面读取RM3100的数据,淘宝看了下,还真不便宜。 这个东西本身难度不是很大,麻烦的是没有什么参考资料,就官网那点东西。 程序思路很简单,调SPI通信,调初始化设置。 查看数据手册,这些寄存器都是可以被设置的,还好,不算太多。 也没必要全都设置一遍,只需要把需要的设置一下就行,我的话主要是设置了连续测量和转换周期。 /** * @brief Sets cycle count and updates gain and max_data_rate values * @param desire value PNI recomends values between 3
[单片机]
基于STC15W系列的板载LED灯控制程序讲解
前言 Hello,大家好,我是STC15W系列单片机的初学者,很高兴能在这个平台上和大家分享我的学习经验~ 言归正传,现在我们就开始对STC15W4K56S4单片机进行学习吧! 一.对STC15W4K56S4单片机的介绍 本次的学习是以STC15W4K56S4单片机为例子。单片机板载带有两个LED灯,分别为红色和蓝色,对应的引脚是P06(蓝色)和P07(红色)。在本次的实验中我还加入了板载S3开关,也就是P54引脚。通过对两个LED灯和开关的协同控制来完成此次的学习。 二.程序实现开关控制流水灯 普通流水灯的实现很简单,就是对P06和P07两个IO口进行高低电平设置。再加入延时来呈现流水灯的效果。 定义
[单片机]
关于stm32硬件spi的miso口配置
在我们刚使用spi时,对于spi的io口配置可能会有一些疑惑吧,miso明明是一个输入口却配置成了复用推挽输出,是不是会有一点疑惑呢? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 复用的推挽输出 MISO不是应该设置成为输入端口(GPIO_Mode_IN_FLOATING)才行的吗?是不是很抑或呢?
[单片机]
STM32F4 SPI NSS硬件模式配置及使用
我们知道,SPI_NSS有两种模式,SPI_NSS_Hard和SPI_NSS_Soft。 SPI_NSS_Hard,硬件自动拉高拉低片选,在速率上是远比软件方式控制要高的,缺点是当STM32为主设备时,同一个SPI上面只能接一个从设备。这也就限制了SPI通信设备的数量。 SPI_NSS_Soft,软件控制,GPIO控制片选拉高拉低,优点是一个SPI上面可以挂多个设备。这也是使用较多的方式。所以不再讲述这个,主要讲一下SPI_NSS_Hard下,该如何配置及使用SPI。 话不多说,直接上代码。 void SPI2_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; SPI_In
[单片机]
关于stm32硬件spi的miso口配置
在我们刚使用spi时,对于spi的io口配置可能会有一些疑惑吧,miso明明是一个输入口却配置成了复用推挽输出,是不是会有一点疑惑呢? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 复用的推挽输出 MISO不是应该设置成为输入端口(GPIO_Mode_IN_FLOATING)才行的吗?是不是很抑或呢? 哈哈哈
[单片机]