1,字编程(Word programming)时,地址必须4字节对齐,从首地址开始,4字节连续装载后自动开始编程过程。
说明:例如要写入u16(16位无符号整形)类型的数据0x1234到0x4005地址处,按4字节对齐,要写入的4字节地址为0x4004-0x4007,依次装载数据为:0x4004处dump,0x4005处为0x12,0x4006处为0x34,0x4007处为dump(其中dump可以为任意值,为0即可)。
2,蜂鸣器(BEEP)模块的时钟源门控使能为“CLK->PCKENR2 |= CLK_PCKENR2_AWU;”。
说明:CLK->PCKENR1和CLK->PCKENR2寄存器为各外设的时钟门控,默认值都为0xff,即默认都开启。如果有功耗要求可以全部关闭,需要用到的外设再单独打开。这时就要注意,手册上没有介绍BEEP的时钟门控是哪个。时钟门控开启后,才能通过“BEEP->CSR |= BEEP_CSR_BEEPEN;”来使能BEEP输出。当然,像stm8s105c6这样BEEP输出需要通过配置选项字节实现的,也别忘了调试前先用swim烧录的方式配置好相应的选项字节。
3,独立看门狗模块(IWDG)模块开启后无法关闭。
说明:若程序中有需要用到独立看门狗模块的,配置步骤为
//配置成20ms超时复位,对LSI/2先64分频,再设置RL[7:0]=20
IWDG->KR = KEY_ACCESS; IWDG->KR = KEY_REFRESH; //恢复写保护
IWDG->KR = KEY_ENABLE; //启动看门狗
主循环中通过“IWDG->KR = KEY_REFRESH;//刷新计数值”来喂狗。
此模块开启后无法关闭,只能在复位后默认处于关闭状态。
注:文中代码实现的前提是已包含stm8s官方库文件中的stm8s.h文件。
关键字:stm8s 参考手册
引用地址:
stm8s参考手册上未说明的细节
推荐阅读最新更新时间:2024-03-16 14:29
stm8s之STVD中stm8s903k.h: No such file or directory问题解决
关键问题是找不到stm8s903k.h 那么stm8s903k.h到底在哪呢? 查一下STVD安装路径C:Program Files (x86)STMicroelectronicsst_toolsetinclude 相信您能找到超多的ST系列单片机之.h文件 stm8s903k.h也在其中 把stm8s903k.h的路径加进去,OK!
[单片机]
STM8S_006_AWU自动唤醒
Ⅰ、写在前面 在某些低功耗的设备中,需要设备进入低功耗,且又需要间隔一定时间唤醒MCU,就需要有这么一个“AWU自动唤醒”定时自动唤醒的功能。 在STM32中实现上面功能,常见的操作就是使用RTC来实现。但RTC每次进入低功耗之前都需要配置一下RTC,而STM8独特的AWU功能只需要简单的初始化配置即可。 为方便大家阅读,本文内容已经整理成PDF文件: http://pan.baidu.com/s/1i5uWhJR 作者:strongerHuang 版权所有,未经允许,禁止用于其它商业用途!!! Ⅱ、AWU基础知识 AWU:AutoWakeUp,即自动唤醒 AWU是用来当MCU进入低功耗的活跃停机(Acti
[单片机]
STM8S(105K4)使用笔记——系统时钟的基础配置
0、STM8s105在系统复位后默认开启HSI,同时进行8分频 可以通过查看 寄存器CLK_ICKR为0x03(HSI使能) 寄存器CLK_CKDIVR为0x18(HSI分频为8分频) 1、初始化 使能HSI(系统初始化后HSI默认使能) CLK- ICKR |= 0x01; 禁用HSI CLK- ICKR &= (uint8_t)(~0x01); 使能LSI(若需要使用awu,请使能LSI) CLK- ICKR |= 0x08; 禁用LSI CLK- ICKR &= (uint8_t)(~0x08); 2、时钟分频 a、主时钟分频 1分频 CLK- CKDIVR &= (uint8_t)(~0x1
[单片机]
关于STM8S使用硬件SPI收发问题
在调试STM8S的SPI时候,由于在学习板上飞线,然后发现每次读SPI FLASH的设备ID等都是不对的. 在21IC发帖求救http://bbs.21ic.com/forum.php?mod=viewthread&tid=788880&epclose=1 总体来说是怀疑硬件飞线的干扰.于是今天又飞了一块板子,发现仍然有这样的问题. 好吧,真的只能打板了. 自己想想会不会在读取数据前SPI的硬件BUFFER中就存在有数据啊. 嗯,有可能, 于是在读数据前,先将SPI的数据先读出,清空缓存,具体代码如下 /* --Common functions */ /* * Function: Wait_
[单片机]
stm8s gpio端口配置
简介 STM8的通用输入/输出口用于芯片和外部进行数据传输。一个IO端口可以包括多达8个引脚,每个引脚可以被独立编程作为数字输入或者数字输出口。另外部分口还可能会有如模拟输入,外部中断,片上外设的输入/输出等复用功能。但是在同一时刻仅有一个复用功能可以映射到引脚上。 复用功能的映射是通过选项字节控制的。请参考数据手册关于选项字节的描述。每个端口都分配有一个输出数据寄存器,一个输入引脚寄存器,一个数据方向寄存器,一个选择寄存器,和一个配置寄存器。一个I/O口工作在输入还是输出是取决于该口的数据方向寄存器的状态。 STM8S的GPIO主要功能 ● 端口的各个位可以被单独配置 ● 可选择的输入模式:浮动输
[单片机]
STM8S PWM输出停止后 IO口电平输出
STM8S有许多定时器支持PWM输出,但在停止定时器后,IO口电平到底是多少呢?或高或低。 因此,为了确定PWM停止输出电平后其对应的值是多少,我们在停止PWM输出时需要对CCMR1寄存器进行设置。 例如, TIM2_Cmd(DISABLE); /*停止PWM后将电平拉为低电平*/ TIM2_ForcedOC1Config(TIM2_FORCEDACTION_INACTIVE); GPIO_WriteLow(GPIOC, GPIO_PIN_5); 即可。 恢复时候需要重新将定时器初始化 TIM2_DeInit(); TIM2_TimeBaseInit(TIM2_PRESCALER_16,uFr
[单片机]
【STM8S】 AWU低功耗模式
/** ********************************** STM8S *********************************** * @文件名 : bsp_awu.c * @作者 : strongerHuang * @库版本 : V2.2.0 * @文件版本 : V1.0.0 * @日期 : 2017年05月10日 * @摘要 : 自动唤醒源文件 ******************************************************************************/ /*-----------------------
[单片机]
STM8S各个模块初始化
/***************可选择的内部或者外部时钟*******************/ #ifdef HSE_EXT void ClkInit(void) { CLK_ICKR = 0X00; //禁止高速内部时钟,从停机(Halt) 或活跃停机(Active Halt) 模式快速唤醒禁止 CLK_ECKR |= 0X01; //使能外部时钟 while(!(CLK_ECKR & 0x02)); //看外部晶振是否启动 CLK_ECKR |= 0X01; //使能外部时钟 CLK_CKDIVR = 0Xf9; //外部12M HZ晶振作为CPU时钟 //入选2
[单片机]