推荐阅读最新更新时间:2024-11-10 14:10
STM8 IO输出之LED显示程序
系统功能 使用STM8控制8位LED,演示STM8单片机流水灯。 硬件设计 关于STM8的I/O结构及相关介绍详见Datasheet,这里仅对作部分简单介绍,下面是STM8的I/O引脚配置表: STM8 I/O 口引脚配置表 Px_DDR Px_CR1 Px_CR2 I/O 方式 引脚状态说明 0 0 0 输入 悬浮输入 0 0 1 输入 上拉输入 0 1 0 输入 中断悬浮输入 0 1 1 输入 中断上拉输入 1 0 0 输出 开漏输出 1 1 0 输出 推挽输出 1 X 1 输出 输出(最快速度为10MHZ) 虽然STM8的I/O口单独输出“1”时,可输出较大电流足已点亮一盏灯,但STM8总的I/O输出
[单片机]
stm8 bootloader IAP升级
首先,stm8的中断向量的跳转地址是固定的。也就是说发生中断时,芯片会跳转到0x8000对应中断的偏移地址。而大部分bootloader都是在该区域实现。也就是说中断向量会被bootloader所占用。当用户程序执行中断时会跳转到bootloader程序的中断向量。也就会执行bootloader对应的中断。如果要执行用户代码区的中断函数则需要在bootloader的向量表区存放跳转置用户软件中断向量表。如下图跳转: 填写图片摘要(选填) 以上是带有bootloader的用户软件的运行步骤,这样在bootloader区按道理是无法实现中断的。因为向量表是跳转到用户软件向量表。实质上是可以同时在boot和app区实现中断的,但为了
[单片机]
使用STM8单片机+NTC热敏电阻自制简易温度巡检仪
最近在测试设备的时候需要监测设备的温度,平常测试时都是通过红外热成像仪测试,然后手动记录数据。这样测试的话工作量比较大,需要几分钟就记录一次数据。于是想着能不能用单片机做一个测试温度的装置,用电脑自动记录数据。手头刚好有STM8S003单片机和 5K的NTC热敏电阻,于是就做了一个简易的温度测试装置,并使用伏特加上位机软件将温度波形显示出来。 最终测试效果如图所示: 下面将制作步骤分享出来。 首先设计NTC热敏电阻的采样电路。 这里使用最简答电阻分压电路,将热敏电阻和一个10K电阻串联分压,然后将电压值直接送到单片机的AD采样口,由于热敏电阻的阻值会随着温度变化,所以送入单片机口的电压值也会随着
[单片机]
STM8与汇编语言(8)--16位定时器应用
当需要更长时间的定时时,最好使用16位的定时器,STM8单片机中都提供了2到3个的16位定时器,方便用户使用。 下面的代码给出了一个采用16位定时器实现的定时中断程序,在定时中断程序中,驱动LED指示灯的闪烁。 切记,一定要将中断服务程序的入口地址填写到中断向量表中,并且要根据定时器的中断向量号在正确的位置上填写。 同样还是利用ST的开发工具,生成一个汇编程序的框架,然后修改其中的main.asm,修改后的代码如下。 编译通过后,下载到开发板,运行程序,可以看到LED在闪烁,或者用示波器可以在LED引脚上看到方波。 stm8/ #include mapping.inc #include
[单片机]
STM8 PCF8591 AD/DA转换子程序
软件设计 /********************************************************************* 目 的: 建立PCF8591操作库 目标系统: 基于STM8单片机 应用软件: Cosmic CxSTM8 *********************************************************************/ #include ws_i2c.h #define MODE0 0x00 #define MODE1 0x10 #define MODE2 0x20 #define MODE3 0x30 #define CHNL0 0 #d
[单片机]
STM8低功耗问题
在使用STM8S003时碰到一个问题:为了降低MCU功耗,在初始化时候禁止了施密特触发器,发现IO- PD3作为输入寄存器IDR一直为0。于是查找资料发现IO口作为输入时候必须开启施密特触发。 另外当IO口复用ADC功能时候也需要注意此寄存器设置,网上搜索问题原因的时候看到因ADC和UART复用时候关掉了触发器产生的问题,帖子如下: http://www.eepw.com.cn/article/201609/310076.htm
[单片机]
STM8芯片加密的方法
首先打开stvp软件,然后选择芯片型号,装载程序,单击“OPTION BYTE”菜单进入设置,然后将ROP 的Read Out Protection OFF选项设成Read Out Protection ON 设置完成 回到STVP菜单,单击“Program”,选择Current tab选项,进行下载设定 在下面窗口可以看到软件日志,没有错误的话就可以了 上面的加密就完成了,这里也可以检测一下是否加密成功,单击All tabs 试一下是否可以烧写程序 现在发现芯片就没有办法进行烧写了,提示芯片写保护没法烧写,说明芯片加密成功
[单片机]
STM8 读同时写RWW
RWW特性允许用户在执行程序和读程序存储器时对DATA EEPROM区域进行写操作,因此执行的时间被优化了。相反的操作是不允许的:即你不可以在写程序存储器时对DATA EEPROM进行读操作。 RWW特性是一直有效的而且可以在任意时刻使用。注意:并不是所有STM8都拥有RWW特性,请参考相应的数据手册来了解更多信息。 字节编程 可以对主程序存储器和DATA区域逐字节地编程。要对一个字节编程,应用程序可直接向目标地址写入数据。 在主程序存储器中 当字节编程操作执行时,应用程序停止运行。 在DATA区域中 有RWW功能的器件:在IAP模式下,应用程序不停止运行,字节编程利用RWW功能进行操作。 无RWW功能的器件:当字节编程
[单片机]