历史上的今天
今天是:2025年02月07日(星期五)
2021年02月07日 | STM8内部存储器结构及编程
2021-02-07 来源:eefocus
一.STM8内部存储器结构

二.端口及外设存储区


从0X005050开始到0X0057FF结束的区间内存储的是外设的寄存器。包括:flash、ITC终端资源、RST复位、CLK时钟、WWDG窗口看门狗、IWDG独立看门狗、AWU自动唤醒单元、BEEP蜂鸣器、SPI、I2C、UART、TIM定时器、ADC、beCAN等。
三.32级中断向量


第二部分 对内部存储器编程
对存储器编程就是对存储器对应的功能寄存器的操作,
主要是为了操作flash rom、EEPROM、选线字节等存储器资源。
存储器对应的功能寄存器分为以下3各大类:

这8个寄存器每个都在stm8XXXXX.h中定义好了。我们只需读懂其每一位的意义。
附:对EEPROM读写小实验
//------------head----------------------
#include "iostm8s208mb.h"
//------------common-----------------------
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
//------------maroc------------------------
#define LED PC_ODR
//------------func------------------------
void delay(u16 count);
void GPIO_init(void);
u8 unlock_EEPROM(void);
//------------global----------------------
u8 table[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
u8 disnum_EEPROM @0X4000;
//------------main------------------------
void main( void )
{
GPIO_init();
u8 i=0;
while (unlock_EEPROM());
if (disnum_EEPROM!=0)
{
LED=table[disnum_EEPROM];
i=disnum_EEPROM;
delay(500);
}
else
{
LED=table[i];
}
while (1)
{
i=(i+1)%10;
LED=table[i];
disnum_EEPROM=i;
while ((FLASH_IAPSR & 0X40)==0);
delay(500);
}
}
//------------funcs------------------------
void delay(u16 count)
{
u8 i,j;
while (count--)
{
for(i=0;i<50;i++)
for(j=0;j<20;j++);
}
}
void GPIO_init(void)
{
PC_DDR =0XFF;
PC_CR1 =0XFF;
PC_CR2 =0X00;
PC_ODR =0X00;
}
//-------------------------------------
u8 unlock_EEPROM(void)
{
FLASH_DUKR=0XAE;
FLASH_DUKR=0X56;
if(FLASH_IAPSR & 0X08) return 0;
return 1;
}
上一篇:STM8电源模式管理及功耗控制
史海拾趣
|
WINCE4.2安装时出错,错误提示如下: Error 21337.Setup encountered problems installing some critical emulation components.You may continue the install,but the emulator may not work .Would you like to continue setup? 哪位高手知道是什 ...… 查看全部问答> |
|
Wince下CAN驱动开发,每次发送数据时,CAN设备总是接收到多个数据帧 我在WinCE下开发MCP2515的CAN驱动程序,硬件是TQ2440的开发板,CPU是S3C2440,现在的问题是,每次发通过MCP2515发送数据的时候,我总是可以接收到多个CAN数据帧,而且每次接收到的CAN数据帧的数量也不同,我也把MCP2515设置成了单次触 ...… 查看全部问答> |
|
如果不是宽字符可以用长度辨别 但是在宽字符下不管是中文还是英文都是 长度都是1 这个怎么辨别是中文呢? 还有 如果我要出字符串中搜索到是否含有某个汉字 这个是通过怎么搜呢? 我在 edit控件中输入 方 然后把这个方放入wchar_t *st ...… 查看全部问答> |
|
我现在一个问题就是做gis,能显示地图,导航什么的 我用的是xsbase270,处理器是intel pxa270。 evc 4.0。 开始的时候我想用esupmap5.0,但是esupmap5.0试用版的没有我硬件平台的函数库.也不支持vs2005 有pocketpc2003的函数库. 所以我现在的方 ...… 查看全部问答> |
|
如题,EPIAddressMapSetEPIConfigSDRAMSetEPIAddressMapSet这些函数的使用说明找不到啊。请有的兄弟给分享下。先谢过了。… 查看全部问答> |
|
小弟我虚心请教,跪求各位高手解答!在线等!!!!!!! 在线等!!!!!!! 小弟我虚心请教,跪求各位高手解答。我想用单片机实现电压的转换。大致要求如下: 输出端有2个:x和y. 输入端为p1到p9. p1,p2,p3为一组,p4,p5,p6为一组,p7,p8,p9为一组。p1端输入5v电压时,x端输出5v,y端输出0v;p3端输入5v时,x端输 ...… 查看全部问答> |
|
TI的集成PHY的M4,TM4C129可出来了在TI的网站上面 http://www.ti.com.cn/lsds/ti_zh/microcontroller/tiva_arm_cortex/c_series/tm4c129x_series/overview.page?paramCriteria=no TI的集成PHY的M4,TM4C129可出来了在TI的网站上面… 查看全部问答> |
|
本帖最后由 ddllxxrr 于 2015-3-31 10:12 编辑 好像有个网络小说叫《向左走,向右走》。说是男女主人公隔着一道墙,每天上班都看不到对方,后来好像还没看到就拉倒了。其实,这个东西是一种缘份,有的人有缘没有份,有的有份无缘。实现中,小说里 ...… 查看全部问答> |




