推荐阅读最新更新时间:2024-03-16 15:41
STM8读取AD值偶尔跳变出错的问题
在调试STM8S103K3T6的AD功能时,发现当温度快速变化时(吹风机模拟),读取到的AD值会偶尔出现跳变,出现的位置相对固定;AD时钟设为2Mhz,每100ms采集一次,单次单路采集,通道无切换,用示波器看供电电压和AD口电压都没有毛刺等跳变,可以排除外部器件的问题;后来查看手册发现问题,DRH/DRL数据的左对齐和右对齐方式,对应不同的读取顺序 我使用的右对齐,把程序改成先读DRL,再读DRH,问题解决
[单片机]
STM8系列芯使用STVP烧写程序设定读保护和如何解除读保护操作
首先打开STVP,打开需要烧写的程序(Open),如果要对芯片进行读保护,就把选择项里面的保护选择为ON就行。如下图所示: 点全部写入,会提示你设定保护,点“是”就写入保护了。 以上写入完成后,再读和写均被保护。提示如图: 如果要重新下载程序,就必须先去掉保护,需要选择保护OFF,点下图按钮即可完成操作。
[单片机]
基于STM8的UART发送和中断接收
1. 综述 UART的基础知识,通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器。 做软件开发的人都知道打印信息的重要,说到打印信息,我们就不得不说UART串口打印。做单片机开发的人,打印信息主要的来源就是UART串口打印。因此,UART会比较常用到,所以在此对UART串口进行一个说明。 2. 关于STM8S103手册的UART简介 3. UART初始化参数详细讲解 3.1 BaudRate(波特率) 所谓的波特率就是每秒钟传送的码元符号的个数,可以理解为串口的输出速率。可选的波特率有很多,常用的波特率有115
[单片机]
STM8开发记录二:UART RX空闲中断和DMA操作
一、用STM8L的时候,没能在同时读取Rx中断和IDLE中断标志,最后用DMA取数据,见 (三、DMA实现数据拷贝): 1.1 uart配置 void UsartConfig(void) { // USART_DeInit(USART1); /* Enable USART clock */ CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE); /* USART pin remap */ SYSCFG_REMAPPinConfig(REMAP_Pin_USART1TxRxPortA, ENABLE); /* Configure USART
[单片机]
STM8 入门学习与实验(二)TIM 定时器
简介:这一章节将说明如何在stm8s上面部署一个TIM1,也就是定时器,我们将利用这一个定时器精准定时1ms单位,并用它来为LED灯闪烁时间作参考。 一、stm8定时器简述 打开用户手册,可以看到这张模块图鲜明的表明了STM8S103F3的外设内设都有哪些,我们可以看到右下角的几个定时器 可以得知,STM8S具有一个高级控制定时器TIM1,一个普遍应用定时器TIM2和一个基本定时器TIM4,可用的功能和配置逐级往下 二、配置TIM定时器 先看一条初始化TIM1的语句示例 TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, 800, 0); 第一个参数0,是预分频值,这里为
[单片机]
STM8 用户启动区域(UBC)
用户启动区域(UBC)包含有复位和中断向量表,它可用于存储IAP及通讯程序。UBC有一个两级保护结构可保护用户代码及数据在IAP编程中免于无意的擦除或修改。这意味着该区域总是写保护的,而且写保护不能通过使用MASS密钥来解锁。 在ICP模式下(使用SWIM接口)可以通过修改选项字节来配置UBC的大小。UBC选项字节指定了分配在UBC中的页的数量。UBC区域的起始地址是0x00 8000。 可以通过读取UBC选项字节来获得UBC区域的大小。请参考图6,图7和图8来了解UBC区域的存储器映射。对于选项字节部分,请参考相应的数据手册了解更多的UBC选项字节的细节。 (图六:小容量STM8S的UBC区域大小) 1. UBC =
[单片机]
STM8的GPIO驱动
芯片的外设一般按照这么几个流程来进行,GPIO,外部中断,定时器,串口,ADC,IIC,SPI,下面我就按照各个模式来写 首先是GPIO,STM8的GPIO拥有复用功能,这句话告诉我们必然需要配置IO的复用功能才能使用,看这张表 DDR决定输入输出方向,CR1 CR2决定输入输出模式,上拉,下拉,推挽,开漏等 主要依靠这几个寄存器 还有一个控制寄存器2,懒得传了 按照这张表,输出写输出寄存器,输入读输入寄存器,就能完成GPIO的操作了 以下是操作代码 #include key.h u8 keyValue = 0; #define KEY1_IN (GPIOD- IDR&0X
[单片机]
STM8学习笔记——定时器定时功能和中断相关
定时器都差不多,无非就是计数,溢出了标志置位,如果中断允许的话产生一个中断。说到中断,STM8S105的中断向量表如下 时基单元: 在选用内部时钟的情况下,CK_PSC是由fmaster提供的,经过定时器预分频器分频产生CK_CNT时钟,然后作为一次计数的时基,举个例子,16M的内部RC,经过16分频,则CK_CNT为1M,那么定时1ms只需计数1000次。 计数模式: 共有三种:向上,向下,中央对齐 以向上计数为例:计数器从0计数到用户定义的比较值(TIMx_ARR寄存器的值),然后重新从0开始计数并产生一个计数器溢出事件,同时,如果TIM1_CR1寄存器的UDIS位是0,将会产生一个更新事件(U
[单片机]