首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
STM8单片机学习笔记
当时只道是寻常_
创建于2021-05-17
订阅专栏
记录在学习和使用STM8单片机过程中遇到的问题及解决方法
等 7 人订阅
共75篇文章
创建于2021-05-17
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
STM8单片机蜂鸣器功能使用方法
STM8单片机自带有蜂鸣器的驱动功能,不过这个蜂鸣器指的是无源蜂鸣器,而不是常用的有源蜂鸣器。 无源蜂鸣器,简单的理解就是内部没有供电电路。
STM8将库函数移植为寄存器方法|8月更文挑战
在使用使用STM32单片机的时候,喜欢使用库函数,由于stm32的寄存器太多了,如果直接使用寄存器的话,设置起来太麻烦了,而且stm32单片机速度快,容量大,使用寄存器要额提高不了多少效率。
STM8单片机串口发送和接收引脚分开使用方法|8月更文挑战
在使用STM8S003单片机时,需要用到ADC采样功能,STM8S003总共有5个ADC采样口,但是其中两个采样口是和串口复用的,如果当ADC口用,就不能用串口,如果当串口用,就不能用ADC口。
STM8单片机PWM调试时波形断开解决方法|8月更文挑战
在使用STM8单片机的PWM功能时,一直没出现过问题。但是在一个项目中需要在PWM波输出的过程中变频,这时候问题来了。在PWM输出过程中,输出的波形是不是的就会有一大段空白的地方,好像波形输出被关闭了
记一次ST-LINK维修及刷固件过程
以前网上买了一个ST-LINK烧写器,用了一段时间突然烧不了程序了。就扔那没管,今天无意中翻了出来拆开后发现只有一个STM32F103C8T6单片机,于是决定自己动手修复。
STM8学习笔记---Modbus通信协议简单移植
Modbus是一种串行通信协议,在工业中应用是比较广泛的。关于Modbus的介绍网上资料很多,这里就不细说了。刚开始接触的时候看Modbus的介绍,光是协议的介绍有几百页,还有各种命令,各种链路层的应用,看了几天,越看越糊涂,越看越不会用。 最后在单...
STM8学习笔记---外部中断实现
利用按键做为中断触发,按键按下一次,LED灯翻转一次。 首先初始化IO口,按键接在PC4口,默认情况下高电平,按键按下后为低电平。 将PC4口设置为输入口,选择上拉电阻输入,让IO口默认情况下为高电平。由于要使用中断功能,所以允许外部中断。 下来看看中断相关寄存器: 通过中断映射...
STM8学习笔记---通过示波器分析串口数据
在用单片机做串口通信时,经常会遇到通信错误,但是检查程序时却没发现有什么问题。这时候就可以借助示波器来观察串口数据是不是正确。但是串口数据的波形要怎么看呢。先来看看串口数据帧的定义: 常用的数据格式为 1位起始位、8位数据位、1位结束位、无奇偶校验位。一个数据位上总共有10个电平...
STM8学习笔记---串口通信中如何自己定义通信协议
在单片机刚开始学习的时候,串口通信是经常要用到的,但是实际产品中串口通信是需要通信协议的。好多人不明白为什么要用通信协议,如何定义通信协议,带通信协议的程序要怎么写。今天就来说一下如何串口通信协议是如何定义出来的。 先看一段最简单的串口程序。UART1_CR2_bit.UART1...
STM8学习笔记---利用UID码实现开机产生随机数
有时候项目中需要用到开机产生随机数,而软件产生随机数必须要一个随机种子。用一路AD采集温度或电源噪声,取后几位作为随机信号;将用户的交互信号时间作为随机信号;利用时钟芯片或RTC获取当前时间再经处理作为随机信号;自己搭一个硬件电路用来产生随机信号; 有时候条件限制上面这几种方式都...
STM8学习笔记---union联合体的应用
平时用单片机编写程序经常会遇到将一个16位数拆封为两个8位数,或者将将两个8位数组成一个16位数。如: data = data_h * 256 + data_l; data_h = data / 256; data_l = data % 256; 对于8位单片来说计算乘法和除法比...
STM8学习笔记---读取STM8S003单片机序列号
最近做项目时需要用到单片机的序列号,于是查了一下STM8S003单片机UID读取的方法。读取UID方法大概分两种,一种是直接在地址中读取,一种是通过定义一个联合体,将联合体的起始地址设置在UID起始地址处,在初始化的时候直接将UID号存入联合体中。 关于UID的描述,官方资料如下...
STM8学习笔记---寄存器操作之位或和位与运算
刚开始学习STM8单片机时,看别人的代码,在设置寄存器的时候经常使用,位或、位与、左移、右移等运算,就很不理解,为什么不直接给寄存器赋值,非要搞的这么复杂。直到后来程序写的多了,才明白这样写的好处。比如我们现在要设置PB5口为输出口。首先我们需要设置PB口的方向寄存器PB_DDR...
STM8学习笔记---如何在程序中确定寄存器名称
在刚开始写程序的时候,在程序中需要设置寄存器的时候,往往不知道寄存器名称怎么写才是对的,这时候可以通过头文件来查看寄存器是如何调用的。在打开一个IAR工程文件,打开main.c文件,然后再引用的头文件上单击鼠标右键,选择Open "iostm8s003F3.h"打开所引用的头文件...
STM8单片机复位源判断
最近在调试系统的时候,发现单片机老是复位,于是想着用程序来判断一个单片机的复位信号是来自于哪里。位7:5 保留,必须保持为0。 由于单片机没有用到看门狗,所以这两种看门狗复位用不到,SWIM复位是烧写程序或者仿真时用的。那就只剩下一个EMC复位、非法操作码复位可以判断。但是更希望...
STM8单片机产生随机数
最近需要用到单片机随机数,但是用rand()产生的随机数,发现每次单片机上电时产生的随机数都是一样的,没有实现真正的随机数。查资料发现要用到srand(t)产生一个随机种子,同样获取随机种子的时候也需要一个随机信号,随机信号可以通过系统时间或者悬空的AD引脚产生。但是对于单片机来...
STM8S003单片机串口通信通信协议分析
最近在用STM8S003这个片子做项目,在做串口通信的时候,发现以前写的协议太简单了,项目中用不适合。这是测试用的一个简单协议,用0XDD作为数据头,0XAA作为数据尾。不限制数据长度。能进行简单的通信功能,但是实际项目中应用时,如果传输的数据中有0XDD或者0XAA,这个协议在...
STM8学习笔记---ADC多通道采样遇到问题及解决方法
在ADC多通道采样时遇到了一个问题,费了半天劲才找到原因。在此将分析过程记录下来。这是STM8S003单片机5个通道ADC采样程序,在主函数中依次读取各个通道的ADC采样值。首先单独测试一下每个通道的值。每个通道单独测试采样值 ch2 = 623, ch3 = 0,...
STM8学习笔记---PWM互补波形输出
脉宽调制(PWM,Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。 常见的用法是输出一路PWM波,可以通过调节PWM的频率和占空比来控制电路...
STM8学习笔记---NTC热敏电阻的使用
温度采集是产品开发过程中必不可少的,读取温度的方法有很多种,有专用温度采集芯片,温度传感器,热敏电阻等,各种方法来获取温度。今天总结一下使用热敏电阻来采集温度。也就是将温度变化转换为电阻阻值变化,通过通过阻值大小就能间接地判断到当前温度值。而读取电阻值实际应用中是很...
下一页