当前位置:网站首页>STM8S105K4T6------串口发送和接收
STM8S105K4T6------串口发送和接收
2022-08-04 02:20:00 【挨踢玩家】
上篇文章讲了如何点亮板载LED,这次来讲,stm8s105k4t6的串口发送数据
不会点亮LED灯可以看—>stm8点亮LED
串口发送部分
步骤: 在点亮LED灯基础上增加一个uart.c和uart.h文件 代码看我下面的图,我后面讲解代码

记得要#include“uart.h”头文件和初始化串口配置函数

main.c就几行代码,照抄我都就行了 ,下面放uart.c和uart.h的代码

这里是是对串口引脚的初始化

UART.C代码
#include "usart.h"
void Usart2_Config(void)
{
//发送接收引角口初始化
GPIO_Init(GPIOD, GPIO_PIN_6, GPIO_MODE_IN_PU_NO_IT);
GPIO_Init(GPIOD, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_FAST);
CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART2, ENABLE);
UART2_Init((uint32_t)115200, UART2_WORDLENGTH_8D, UART2_STOPBITS_1,UART2_PARITY_NO,UART2_SYNCMODE_CLOCK_DISABLE, UART2_MODE_TXRX_ENABLE);
UART2_ITConfig(UART2_IT_RXNE_OR, ENABLE);//开启接收中断
UART2_Cmd(ENABLE);
}
void Usart2_SendByte(u8 Byte)
{
UART2_SendData8(Byte);
while((UART2->SR & 0x80) == 0x00)
{
}
}
void Usart2_SendHalfWord(uint16_t ch)
{
uint8_t temp_h, temp_l;
/* 取出高八位 */
temp_h = (ch&0XFF00)>>8;
/* 取出低八位 */
temp_l = ch&0XFF;
/* 发送高八位 */
Usart2_SendByte(temp_h); /* 发送低八位 */
Usart2_SendByte(temp_l);
}
void Usart2_SendByteArr(u8* Buff, u16 Size)
{
while(Size--)
{
Usart2_SendByte(*Buff++);
}
}
void Usart2_SendHalfWordArr(u16* Buff, u16 Size)
{
while(Size--)
{
Usart2_SendHalfWord(*Buff++);
}
}
void Usart2_SendString(char *str)
{
unsigned int k=0;
Delay_us(100);
do
{
Usart2_SendByte(*(str + k));
k++;
}while(*(str + k)!='\0');
Delay_us(100);
}
这几个函数,就是封装发送字节,数组,字符串的函数,这样封装后,代码直接调用函数就能够实现发送的功能
UART.H代码
#ifndef __USART_H
#define __USART_H
#include "stm8s_conf.h"
#define UART2_FRAME_LENGHT 30
//中断缓存串口数据长度
extern u8 Uart2_Buff[UART2_FRAME_LENGHT], Uart2_RecNum;
void Usart2_Config(void);
void Usart2_SendHalfWord(uint16_t ch);
void Usart2_SendByte(u8 Byte);
void Usart2_SendByteArr(u8* Buff, u16 Size);
void Usart2_SendHalfWordArr(u16* Buff, u16 Size);
void Usart2_SendString(char *str);
#endif

最后串口就能实现发送数据啦,我这是因为杜邦线接触不良, 有信号干扰才这样
串口接收部分
因为这里要实现的功能是:串口接收到什么,我们就发什么出去
只需要在main.c里面加上开启总中断的代码就行了
在中断代码里面这样写就行了
这样就能实现发1,LED亮,否则灭
经过测试,都是没问题的,你也赶紧试试吧
边栏推荐
- 2022.8.3-----leetcode.899
- 贪吃蛇游戏Bug解析及功能扩展
- 实例039:有序列表插入元素
- 董明珠直播时冷脸离场,员工频犯低级错误,自家产品没人能弄明白
- Simple sorting (summer vacation daily question 14)
- 实例037:排序
- Continuing to invest in product research and development, Dingdong Maicai wins in supply chain investment
- 共n级台阶,每次可以上1级或2级台阶,有多少种上法?
- 天地图坐标系转高德坐标系 WGS84转GCJ02
- 持续投入商品研发,叮咚买菜赢在了供应链投入上
猜你喜欢

阿里云国际版基于快照与镜像功能迁移云服务器数据

Kubernetes:(九)coredns(浪不动了)

贪吃蛇游戏Bug解析及功能扩展

云开发旅游打卡广场微信小程序源码(含视频教程)

Continuing to invest in product research and development, Dingdong Maicai wins in supply chain investment

倒计时2天,“文化数字化战略新型基础设施暨文化艺术链生态建设发布会”启幕在即

cdh6.x 集成spark-sql

融云「音视频架构实践」技术专场【内含完整PPT】

持续投入商品研发,叮咚买菜赢在了供应链投入上

In a more general sense, calculating the displacement distance and assumptions
随机推荐
pytorch应用于MNIST手写字体识别
cdh6.x 集成spark-sql
安全至上:落地DevSecOps最佳实践你不得不知道的工具
Web APIs BOM - operating browser: swiper plug-in
Intranet penetration - application
实例040:逆序列表
2022.8.3-----leetcode.899
实例038:矩阵对角线之和
持续投入商品研发,叮咚买菜赢在了供应链投入上
[QNX Hypervisor 2.2用户手册]10.3 vdev gic
云开发校园微社区微信小程序源码/二手交易/兼职交友微信小程序开源源码
Snake game bug analysis and function expansion
第13章 网络安全漏洞防护技术原理与应用
Ant - the design of the Select component using a custom icon (suffixIcon attribute) suffixes, click on the custom ICONS have no reaction, will not display the drop-down menu
2022G1工业锅炉司炉考试练习题及模拟考试
QNX Hypervisor 2.2用户手册]10.2 vdev 8259
瑞能微计量芯片RN2026的实用程序
Presto中broadcast join和partition join执行计划的处理过程
SAP SD module foreground operation
Example 041: Methods and variables of a class