使用普通的IO口,模拟串口协议, 和PC端串口调试软件实现通信。
网上找了很多资料,有很多网友有些程序,但是感觉都不是很完整,无意间看到ST官方居然有实现,直接下载代码开始用。
针对官方的IO口模拟串口软件,简单介绍下用到资源。
由于模拟的串口RX脚,对于电平的输入判断用到定时器的输入捕获功能,所以官方用的是定时器3的通道2。
我自己在STM8S003F3P6最小系统上,移植到了TIM2的CH1即PD4用来做串口的RX脚,和PC端串口调试器的TX脚连接。
模拟串口的TX脚没有特殊要求,我这里用的PD3。。。。
修改了MAIN里面的函数,实现模拟串口直接发送接收到的数据。
PPS,关于串口波特率的配置,
这个软件包你需要配置下使用外部24MHZ还是内部16MHZ的晶振,我这里配置的内部16M,
然后在模拟串口初始化里面,按照需要配置的波特率,配置定时器的时基。
常用的函数注释里面已经有给你计算好,直接copy就好, 我这里用的16M,9600bsp,所以填的是注释里面给的833.
简单配置以后就可以实现IO模拟串口通信了。
主要是为了节约成本,加个硬件的串口,成本又加了。
关键字:STM8 I口 模拟串口通信
引用地址:
STM8 I口模拟串口通信
推荐阅读最新更新时间:2024-11-09 22:56
STM32中控制I/O口的寄存器们
引言 STM32的I/O口由软件配置,有八种模式:输入悬浮、输入上拉、输入下拉、模拟输入、开漏输出、推挽输出、推挽式复用功能及开漏复用功能。 每个I/O口由7个寄存器控制,分别是: 模式配置的端口寄存器 32位 CRL、CRH 数据寄存器 32位 IDR、ODR 置位/复位寄存器 32位 BSRR 复位寄存器 16位 BRR 锁存寄存器 32位 LCKR 主要介绍一下CRL、CRH、IDR、ODR 一 CRL、CRH CRL控制低8位I/O口,CRH控制高8位I/O口,下图是《STM32参考手册》和《原子教你玩STM32》中关于CRL的介绍。CRL共32位,每四位控制一个I/O口
[单片机]
STM8_TIM4 溢出中断
C语言: Codee#11307 /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 实验平台: ST 官方三合一套件 + 硬件 : STM8S105S6T6C + 开发平台: IAR For STM8 1.10 + 仿真器 : ST-Link ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ #include stm8s.h unsigned int COUNTER; /**************
[单片机]
IAR for STM8 错误
一个IAR for STM8 v1.3 的工程,换到1.4版后出现如下错误 unable to allocate space for sections/blocks with a total estimated minimum size of 0x2341 bytes in (total uncommitted space 0x1f80). 在网上找到下面文章,在工程选项里将“Library Options”里的“Printf formatter”和 Scanf formatter 修改为“small”或 源: STM8S与IAR程序常用错误 一、IAR中的重复定义问题 在自己写头文件时,要记得将常量定义在.c文
[单片机]
STM8单片机GPIO口的驱动深度解析
上一节给大家介绍了STM8标准库的移植,本节课开始学习我们单片机的外设的驱动,单片机基本的外设资料包括GPIO、外部中断、定时器、串口等,本节先给大家介绍一下STM8单片机的GPIO口。 我们先不介绍STM8单片机GPIO口的内部资源,我们先从程序代码着手,再根据代码进一步分析GPIO对应的寄存器,这样才能更容易去理解GPIO的驱动原理。 这篇内容是无际单片机编程lora模块项目其中一节课内容,会配套有视频教程。 STM8单片机的标准库中,不仅包括了我们单片机库文件,还提供了外设的例程代码,供单片机软件程序开发参考. 如上图所示,标准库中包括了STM8单片机所有的外设历程,我们今天要学习的GPIO的驱动,所以我
[单片机]
STM8学习笔记---按键KEY
用按键来控制LED灯的亮灭。按键接在PC4口,LED灯接在PD4口,LED灯由IO口高低电平控制亮灭,所以对于LED来说,IO口为输出口。按键是由外部电路来决定高低电平,假设按键未按下时默认为高电平,按键按下时为低电平。对于KEY来说,IO口为输入口,IO口要读取外部电平状态,根据电平状态来判断按键是否按下。 首先要设置IO口的状态。 端口方向寄存器, LED口要设置为输出模式, 所以PD4设置为1。按键KEY口要设置为输入模式,所以PC4设置为0。 端口控制寄存器,LED口需要输出高低电平,所以PD4口设置为1,推挽输出。 按键KEY口要读取外部电平,按键未按下时为高电平,按键按下时为低电平。所以PC4口设置为1,带
[单片机]
STM8学习笔记(一)内核和架构
简介 STM8S是基于8位框架结构的微控制器,其CPU内核有6个内部寄存器,通过这些寄存器可高效 地进行数据处理。STM8S的指令集支持80条基本 20种寻址模式,而且CPU的6个内部寄 存器都拥有可寻址的地址。如果想了解全部STM8S指令集,请参考STM8 微控制器家族编程手册 (PM0044)。 CPU寄存器 在图1所示的编程模型中可以看到6个CPU寄存器。在一个中断发生后,寄存器以图2所示顺序入栈,它们以相反的顺序出栈。如果需要的话,中断服务程序可使用POP和PUSH指令来对之进行操作。 CPU寄存器描述 (图1) 累加器(A) 累加器是一个8位通用目的寄存器,用于保存算术运算、逻辑运算以及数据操作的操作数及结
[单片机]
STM8 时钟输出功能(CCO)
可配置的时钟输出功能使STM8用户可在外部管脚CCO上输出指定的时钟。STM8S的用户可选择下面6种时钟信号之一做为CCO时钟: fHSE fHSI fHSIDIV fLSI fMASTER fCPU(可选择分频值) 注意:在所有可能的分频值下,不能保证信号的占空比全部为50% 通过配置时钟输出寄存器CLK_CCOR中域CCOSEL 可选择输出的时钟。用户需为指定的I/O引脚(参见管脚描述章节)选择期望输出的时钟。此I/O必须通过配置寄存器Px_CR1对应的位为1来设置为上拉输入或推挽输出模式。 一旦可配置时钟输出寄存器CLK_CCOR的位CCOEN=1,就开始输出所选定的时钟信号。 如果CCOBSY为1,则表
[单片机]
PIC单片机I/O口单线通讯的实现
中、低档PIC单片机有些不带串口,有些虽然有串行口,却受串口固定协议的限制或留作他用,故需用普通I/O口进行通讯。由于中、低档机I/O口数量相对较少,为节省口线,就要用I/O口模拟串行通讯。 本文以两片采用不同主频的PIC单片机(A机时钟频率为6MHz,使用口线RB6;B机时钟频率为4MHz,使用口线RB4)之间用异步通讯方式传送一组数据为例,说明I/O口一线通讯的实现方法。 一、设计思想 1.时钟同步问题 因两个单片机的时钟不同,故采用异步通讯方式。发送、接收一位数据时,采用软件延时,保证发送、接收完全同步。 2.数据发送、接收方式 I/O口一线串行通讯,并-串(或串-并)转换用软件完成。将欲发送的字
[单片机]