0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

中科芯CKS32F107XX系列MCU的串行外设接口介绍

中科芯MCU 来源:中科芯MCU 2026-01-27 06:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

MCU微课堂

CKS32F107XX系列串行外设接口介绍

第六十九期 2026.01.19

SPI简介

SPI协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB在布局上节省了空间。正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,它被广泛地使用在ADC、LCD、FLASH等设备与MCU之间。

中科芯CKS32F107xx系列产品拥有3路SPI接口,允许芯片与外部设备以半/全双工、同步、串行方式通信。此接口可以被配置成主模式,并为外部从设备提供通信时钟(SCK)。支持以多主配置的方式工作。下面就SPI相关特性进行介绍。

SPI主要特征

SPI特征

● 3线全双工同步传输

● 带或不带第三根双向数据线的双线单工同步传输

● 8或16位传输帧格式选择

● 主或从操作

● 支持多主模式

● 8个主模式波特率预分频系数(最大为fPCLK/2)

● 从模式频率(最大为fPCLK/2)

● 主模式和从模式的快速通信

● 主模式和从模式下均可以由软件或硬件进行NSS管理:主/从操作模式的动态改

● 可编程时钟极性和相位

● 可编程的数据顺序,MSB在前或LSB在前

● 可触发中断的专用发送和接收标志

● SPI总线忙状态标志

● 支持可靠通信的硬件CRC

─ 在发送模式下,CRC值可以被作为最后一个字节发送

─ 在全双工模式中对接收到的最后一个字节自动进行CRC校验

● 可触发中断的主模式故障、过载以及CRC错误标志

● 支持DMA功能的1字节发送和接收缓冲器:产生发送和接受请求

SPI功能描述

SPI概述

SPI的方框图见下图。

e24a8fcc-f50c-11f0-92de-92fbcf53809c.png

图1 SPI方框图

图中的①处是SPI的引脚MOSI、MISO、SCK、NSS。CKS32F107xx系列芯片通过以上四个引脚将SPI通讯信号引出到不同GPIO引脚上,使用时必须配置到这些指定的引脚。关于GPIO引脚的复用功能可以查阅芯片数据手册。各个引脚的作用介绍如下:

●NSS:从设备选择信号线,常称为片选信号线。当有多个SPI从设备与SPI主机相连时,设备的其它信号线SCK、MOSI及MISO同时并联到相同的SPI总线上,即无论有多少个从设备,都共同只使用这3条总线;而每个从设备都有独立的一条NSS信号线,当主机要选择从设备时,把该从设备的NSS信号线设置为低电平,该从设备即被选中,即片选有效,接着主机开始与被选中的从设备进行SPI通讯。

●SCK:时钟信号线,用于通讯数据同步。它由通讯主机产生,决定了通讯的速率,不同的设备支持的最高时钟频率不一样,两个设备之间通讯时,通讯速率受限于低速设备。

●MOSI:主设备输出/从设备输入引脚。主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据,即这条线上数据的方向为主机到从机。

●MISO:主设备输入/从设备输出引脚。主机从这条信号线读入数据,从机的数据由这条信号线输出到主机,即在这条线上数据的方向为从机到主机。

图中的②处是SCK线的时钟信号,由波特率发生器根据“控制寄存器CR1”中的BR[0:2]位控制,该位是对fpclk时钟的分频因子,对fpclk的分频结果就是SCK引脚的输出时钟频率。

图中的③处是SPI的数据控制逻辑。SPI的MOSI及MISO都连接到数据移位寄存器上,数据移位寄存器的内容来源于接收缓冲区及发送缓冲区以及MISO、MOSI线。当向外发送数据的时候,数据移位寄存器以“发送缓冲区”为数据源,把数据一位一位地通过数据线发送出去;当从外部接收数据的时候,数据移位寄存器把数据线采样到的数据一位一位地存储到“接收缓冲区”中。通过写SPI的“数据寄存器DR”把数据填充到发送缓冲区中,通过“数据寄存器DR”,可以获取接收缓冲区中的内容。其中数据帧的长度可以通过“控制寄存器CR1”的“DFF位”配置成8位及16位模式;配置“LSBFIRST位”可选择MSB先行还是LSB先行。

图中的④处是SPI的整体控制逻辑。整体控制逻辑负责协调整个SPI外设,控制逻辑的工作模式根据我们配置的“控制寄存器(CR1/CR2)”的参数而改变,基本的控制参数包括SPI模式、波特率、LSB先行、主从模式、单双向模式等等。在外设工作时,控制逻辑会根据外设的工作状态修改“状态寄存器(SR)”,我们只要读取状态寄存器相关的寄存器位,就可以了解SPI的工作状态了。除此之外,控制逻辑还根据要求,负责控制产生SPI中断信号、DMA请求及控制NSS信号线。实际应用中,我们一般不使用SPI外设的标准NSS信号线,而是更简单地使用普通的GPIO,软件控制它的电平输出。

CKS32F107xx系列产品SPI配置:

接下来我们讲解如何利用CKS32F107xx系列固件库来完成对SPI的配置使用。跟其它外设一样,CKS32标准库提供了SPI初始化结构体及初始化函数来配置SPI外设。了解初始化结构体后我们就能对SPI外设运用自如了,结构体如下图所示:

e2a61798-f50c-11f0-92de-92fbcf53809c.png

图2 SPI配置结构体

结构体中各个函数变量的介绍及初始化时可被赋的值如下:

1) SPI_Direction:该函数设置SPI的通讯方向,可设置为双线全双工(SPI_Direction_2Lines_FullDuplex),双线只接收(SPI_Direction_2Lines_RxOnly),单线只接收(SPI_Direction_1Line_Rx)、单线只发送模式(SPI_Direction_1Line_Tx)。

2) SPI_Mode:该函数设置SPI工作在主机模式(SPI_Mode_Master)或从机模式(SPI_Mode_Slave),这两个模式的最大区别为SPI的SCK信号线的时序,SCK的时序是由通讯中的主机产生的。若被配置为从机模式,CKS32的SPI外设将接受外来的SCK信号:

3) SPI_DataSize:该函数可以选择SPI通讯的数据帧大小是为8位(SPI_DataSize_8b)还是16位(SPI_DataSize_16b)。

4) SPI_CPOL和SPI_CPHA:这两个函数配置SPI的时钟极性CPOL和时钟相位CPHA,前面讲过这两个配置影响到SPI的通讯模式。时钟极性CPOL成员可设置为高电平(SPI_CPOL_High)或低电平(SPI_CPOL_Low)。时钟相位CPHA则可以设置为SPI_CPHA_1Edge(在SCK的奇数边沿采集数据)或SPI_CPHA_2Edge(在SCK的偶数边沿采集数据),具体组合设置方式可参考图2。

e301872c-f50c-11f0-92de-92fbcf53809c.png

图3 数据时钟时序图

5) SPI_NSS:该函数配置NSS引脚的使用模式,可以选择为硬件模式(SPI_NSS_Hard)与软件模式(SPI_NSS_Soft),在硬件模式中的SPI片选信号由SPI硬件自动产生,而软件模式则需要我们自己把相应的GPIO端口拉高或置低产生非片选和片选信号。实际中软件模式应用比较多。

6) SPI_BaudRatePrescaler:该函数设置波特率分频因子,分频后的时钟即为SPI的SCK信号线的时钟频率。这个成员参数可设置为fpclk的2、4、8、16、32、64、128、256分频。可选的值如下图所示:

e35f2b84-f50c-11f0-92de-92fbcf53809c.png

图4 SPI波特率分频

7) SPI_FirstBit:所有串行的通讯协议都会有MSB先行(高位数据在前)还是LSB先行(低位数据在前)的问题,而CKS32F107VET6的SPI模块可以通过这个结构体,对这个特性编程控制。

e3c521d2-f50c-11f0-92de-92fbcf53809c.png

图5 SPI数据先行方式

8) SPI_CRCPolynomial:这是SPI的CRC校验中的多项式,若我们使用CRC校验时,就使用这个参数(多项式),来计算CRC的值。

配置完这些结构体成员的值,调用库函数SPI_Init即可把结构体的配置写入到寄存器中。

SPI外设主要可通过主模式和从模式两种方式进行实现,现在就两个模式分别进行讲解。

配置SPI为主模式

在主配置时,在SCK脚产生串行时钟。

配置步骤:

(1)通过SPI_CR1寄存器的BR[2:0]位定义串行时钟波特率;

(2)选择CPOL和CPHA位,定义数据传输和串行时钟间的相位关系(见图4);

(3)设置DFF位来定义8位或16位数据帧格式;

(4)配置SPI_CR1寄存器的LSBFIRST位定义帧格式;

(5)如果需要NSS引脚工作在输入模式,硬件模式下,在整个数据帧传输期间应把NSS脚连接到高电平;在软件模式下,需设置SPI_CR1寄存器的SSM位和SSI位。如果NSS引脚工作在输出模式,则只需设置SSOE位;

(6)必须设置MSTR位和SPE位(只当NSS脚被连到高电平,这些位才能保持置位)。在这个配置中,MOSI引脚是数据输出,而MISO引脚是数据输入;

数据发送过程

当写入数据至发送缓冲器时,发送过程开始。在发送第一个数据位时,数据字被并行地(通过内部总线)传入移位寄存器,而后串行地移出到MOSI脚上;MSB在先还是LSB在先,取决于SPI_CR1寄存器中的LSBFIRST位的设置。数据从发送缓冲器传输到移位寄存器时TXE标志将被置位,如果设置了SPI_CR1寄存器中的TXEIE位,将产生中断。

数据接受过程

对于接收器来说,当数据传输完成时:

●传送移位寄存器里的数据到接收缓冲器,并且RXNE标志被置位。

●如果设置了SPI_CR2寄存器中的RXNEIE位,则产生中断。在最后采样时钟沿,RXNE位被设置,在移位寄存器中接收到的数据字被传送到接收缓冲器。读SPI_DR寄存器时,SPI设备返回接收缓冲器中的数据。读SPI_DR寄存器将清除RXNE位。一旦传输开始,如果下一个将发送的数据被放进了发送缓冲器,就可以维持一个连续的传输流。在试图写发送缓冲器之前,需确认TXE标志应该为‘1’。

注:在NSS硬件模式下,从设备的NSS输入由NSS引脚控制或另一个由软件驱动的GPIO引脚控制。

具体初始化代码如下:

void SPI_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

SPI_InitTypeDef SPI_InitStruct;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);

/* Configure SPI1 Pins PA.4 NSS(software); PA.5 SCK; PA.6 MISO; PA.7 MOSI--------------*/

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_WriteBit( GPIOA, GPIO_Pin_4, Bit_SET );

/* Configure SPI1 -----------------------------------------------------------*/

SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_128;

SPI_InitStruct.SPI_Direction= SPI_Direction_2Lines_FullDuplex;

SPI_InitStruct.SPI_Mode = SPI_Mode_Master;

SPI_InitStruct.SPI_DataSize = SPI_DataSize_8b;

SPI_InitStruct.SPI_CPOL = SPI_CPOL_Low;

SPI_InitStruct.SPI_CPHA = SPI_CPHA_2Edge;

SPI_InitStruct.SPI_NSS = SPI_NSS_Soft;

SPI_InitStruct.SPI_FirstBit = SPI_FirstBit_MSB;

SPI_InitStruct.SPI_CRCPolynomial = 7;

SPI_Init(SPI1, &SPI_InitStruct);

SPI_Cmd(SPI1, ENABLE);

}

单字节收发函数代码如下:

uint8_t CKS_SPI_Tx_Rx_Byte(uint8_t data)

{

while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);

SPI_I2S_SendData(SPI1, data);

while( SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);

return SPI_I2S_ReceiveData(SPI1);

}

配置SPI为从模式

在从模式下,SCK引脚用于接收从主设备来的串行时钟。SPI_CR1寄存器中BR[2:0]的设置不影响数据传输速率。

注:建议在主设备发送时钟之前使能SPI从设备,否则可能会发生意外的数据传输。在通信时钟的第一个边沿到来之前或正在进行的通信结束之前,从设备的数据寄存器必须就绪。在使能从设备和主设备之前,通信时钟的极性必须处于稳定的数值。请按照以下步骤配置SPI为从模式:

配置步骤

(1)设置DFF位以定义数据帧格式为8位或16位。

(2)选择CPOL和CPHA位来定义数据传输和串行时钟之间的相位关系。为保证正确的数据传输,从设备和主设备的CPOL和CPHA位必须配置成相同的方式。

(3)帧格式(SPI_CR1寄存器中的LSBFIRST位定义的“MSB在前”还是“LSB在前”)必须与主设备相同。

(4)硬件模式下(参考从选择(NSS)脚管理部分),在完整的数据帧(8位或16位)传输过程中,NSS引脚必须为低电平。在NSS软件模式下,设置SPI_CR1寄存器中的SSM位并清除SSI位。

(5)清除MSTR位、设置SPE位(SPI_CR1寄存器),使相应引脚工作于SPI模式下。在这个配置中,MOSI引脚是数据输入,MISO引脚是数据输出。

数据发送过程

在写操作中,数据字被并行地写入发送缓冲器。当从设备收到时钟信号,并且在MOSI引脚上出现第一个数据位时,发送过程开始(注:此时第一个位被发送出去)。余下的位(对于8位数据帧格式,还有7位;对于16位数据帧格式,还有15位)被装进移位寄存器。当发送缓冲器中的数据传输到移位寄存器时,SPI_SP寄存器的TXE标志被设置,如果设置了SPI_CR2寄存器的TXEIE位,将会产生中断。

数据接受过程

对于接收器,当数据接收完成时:

● 移位寄存器中的数据传送到接收缓冲器,SPI_SR寄存器中的RXNE标志被设置。

● 如果设置了SPI_CR2寄存器中的RXNEIE位,则产生中断。在最后一个采样时钟边沿后,RXNE位被置‘1’,移位寄存器中接收到的数据字节被传送到接收缓冲器。当读SPI_DR寄存器时,SPI设备返回这个接收缓冲器的数值。读SPI_DR寄存器时,RXNE位被清除。

上述部分是SPI的主/从模式理论配置过程,下面开始对实际程序中的代码配置进行分解。程序较为简单,使用单颗CKS32F107VET6的SPI1外设作为主机,SPI2外设作为从机,通过两路外设互相通信(先SPI1发,SPI2收;再SPI2发,SPI1收)的方式实现。

本讲中,我们以简单的数据接收发送为例进行配置,具体初始化代码如下:

uint8_t CKS_SPI_Tx_Rx_Byte(uint8_t data)

{

while (SPI_I2S_GetFlagStatus(SPI1,

void SPI_Slaver_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

SPI_InitTypeDef SPI_InitStruct;

NVIC_InitTypeDef NVIC_InitStructure;

EXTI_InitTypeDef EXTI_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO, ENABLE);

/* Configure SPI1 Pins PA.4 NSS(software); PA.5 SCK; PA.6 MISO; PA.7 MOSI--------------*/

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;

GPIO_Init(GPIOA, &GPIO_InitStructure);

/* Configure SPI1 -----------------------------------------------------------*/

SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_64;

SPI_InitStruct.SPI_Direction= SPI_Direction_2Lines_FullDuplex;

SPI_InitStruct.SPI_Mode = SPI_Mode_Slave;

SPI_InitStruct.SPI_DataSize = SPI_DataSize_8b;

SPI_InitStruct.SPI_CPOL = SPI_CPOL_High;

SPI_InitStruct.SPI_CPHA = SPI_CPHA_2Edge;

SPI_InitStruct.SPI_NSS = SPI_NSS_Soft;

SPI_InitStruct.SPI_FirstBit = SPI_FirstBit_MSB;

SPI_InitStruct.SPI_CRCPolynomial = 7;

SPI_Init(SPI1, &SPI_InitStruct);

SPI_I2S_ITConfig(SPI1, SPI_I2S_IT_RXNE, ENABLE);

SPI_Cmd(SPI1, ENABLE);

/* Configure SPI1 INT------------------------------------------------------*/

NVIC_InitStructure.NVIC_IRQChannel = SPI1_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

) == RESET);

SPI_I2S_SendData(SPI1, data);

while( SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);

return SPI_I2S_ReceiveData(SPI1);

}

SPI中断函数:

void SPI1_IRQHandler(void)

{

if(SPI_I2S_GetITStatus(SPI1, SPI_I2S_IT_RXNE) != RESET)

{

SPI_Rx = SPI_I2S_ReceiveData(SPI1);

if(SPI_Rx <= 0x04)

{

SPI_I2S_SendData(SPI1, SPI_Tx[SPI_Rx]);

}

else

{

SPI_I2S_SendData(SPI1, SPI_Tx[0x05]);

}

while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET){}

SPI_I2S_ClearITPendingBit(SPI1, SPI_I2S_IT_RXNE);

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19223

    浏览量

    405087
  • adc
    adc
    +关注

    关注

    100

    文章

    7970

    浏览量

    557295
  • SPI协议
    +关注

    关注

    0

    文章

    24

    浏览量

    8877
  • 串行外设接口

    关注

    0

    文章

    25

    浏览量

    4212

原文标题:MCU微课堂|CKS32F107XX系列串行外设接口介绍

文章出处:【微信号:中科芯MCU,微信公众号:中科芯MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    中科CKS32F107XX系列MCU的独立看门狗介绍

    中科CKS32F107xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Independent Watchdog)和窗口型看门狗WWDG(Window Watchdog
    的头像 发表于 11-28 14:51 4085次阅读
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的独立看门狗<b class='flag-5'>介绍</b>

    中科CKS32F107XX系列MCU的窗口看门狗介绍

    中科CKS32F107xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Independent Watchdog)和窗口型看门狗WWDG(Window Watchdog
    的头像 发表于 11-28 14:48 4403次阅读
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的窗口看门狗<b class='flag-5'>介绍</b>

    中科CKS32F107XX系列MCU的bxCAN介绍

    CKS32F107xx系列产品的bxCAN支持CAN协议2.0A和2.0B标准。 该CAN 控制器支持最高的通讯速率为1Mb/s;可以自动地接收和发送CAN报文,支持使用标准ID和扩展ID的报文
    的头像 发表于 01-22 09:06 4024次阅读
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的bxCAN<b class='flag-5'>介绍</b>

    MCU微课堂|CKS32F4xx系列产品时钟配置

    作为MCU运行的基础,时钟是单片机各个模块工作时序的最小时间单位,推动单片机的各指令执行,是MCU选型的一个重要指标。CKS32F4xx系列产品具有众多的
    发表于 12-12 10:17 1393次阅读

    中科CKS32F107XX系列MCU的以太网介绍(二)

    MII即媒体独立接口,也叫介质独立接口。它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口
    的头像 发表于 03-05 10:02 6276次阅读
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的以太网<b class='flag-5'>介绍</b>(二)

    中科CKS32F030K6T6 高性能32位RISC内核MCU 程序兼容STM32F030K6T6

    CKS32F030xx 系列包括三种不同的封装,从 20 脚到 64 引脚不等的。根据选择的器件,包含不同组合的外设。下面的内容包含了这个产品系列所提供的全部
    发表于 03-05 16:23

    中科推出面向CKS32位MCU的编程调试工具

    随着中科MCU在市场上越来越多的被应用,为了更好的支持客户在使用中科32位MCU芯片时的仿真
    的头像 发表于 12-26 15:21 3442次阅读

    MCU微课堂 | CKS32F4xx系列产品SPI通信

    MCU微课堂 | CKS32F4xx系列产品SPI通信
    的头像 发表于 10-24 17:12 1879次阅读
    <b class='flag-5'>MCU</b>微课堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>产品SPI通信

    MCU微课堂 | CKS32F4xx系列产品GPIO口配置

    MCU微课堂 | CKS32F4xx系列产品GPIO口配置
    的头像 发表于 10-24 15:14 1773次阅读
    <b class='flag-5'>MCU</b>微课堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>产品GPIO口配置

    CKS32F107xx系列时钟系统具体配置方法讲解

    上一章节对CKS32F107xx系列时钟做了整体介绍,本章节以使用HSI内部高速时钟为例对时钟具体配置方法进行讲解。
    的头像 发表于 05-28 10:05 1782次阅读
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>时钟系统具体配置方法讲解

    CKS32F107xx系列MCU中ADC介绍

    CKS32F107xx系列产品提供2个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。
    的头像 发表于 06-22 11:04 2141次阅读

    CKS32F107xx系列MCU的GPIO内部硬件结构和工作模式

    16个引脚,如型号为CKS2F107VET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOE共5组GPIO,芯片一共100个引脚,其中GPIO就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。
    的头像 发表于 07-22 09:23 2076次阅读
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的GPIO内部硬件结构和工作模式

    详解CKS32F107xx系列的定时器同步功能

    CKS32F107xx系列部分定时器在内部是相连的,可用于定时器同步或链接,方便用户配置不同的同步模式,以便在电机控制、数据采集和PWM信号生成等应用中,实现复杂的时间序列和多通道的同步操作。本节课
    的头像 发表于 11-26 17:51 1943次阅读
    详解<b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>的定时器同步功能

    CKS32F107xx系列USART的LIN模式

    CKS32F107xx系列在支持正常USART功能的同时,亦支持LIN(局域互联网)模式。
    的头像 发表于 02-18 17:18 1429次阅读
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>USART的LIN模式

    中科CKS32F107XX系列MCU的电源控制介绍

    CKS32F107xx的工作电压(VDD)为2.0~3.6V,通过内置的电压调节器提供内核所需的1.5V电源,图1为电源系统框架。
    的头像 发表于 03-25 16:34 642次阅读
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的电源控制<b class='flag-5'>介绍</b>