首页 > 其他分享 >蓝桥杯嵌入式

蓝桥杯嵌入式

时间:2024-12-05 09:12:26浏览次数:4  
标签:字符 头文件 函数 UART 嵌入式 蓝桥 串口 字符串

蓝桥杯嵌入式

LED:LD1~8 ---PC8~15,低电平电亮

锁存器LE:PD2,=1选通,=0锁存

image-20241201155549021

key:

image-20241201162638675

从上到小,按键B1~4,

PB0~2,PA0,上拉,检测低电平

移植LCD:

不需要再CubeMX中进行引脚配置

仅需要将fonts.h,led.h,led.c添加进工程文件夹

main中不能引用#include "fonts.h",会导致递归引用,发生报错

image-20241201202357601

串口通信

UART1(9600)

PA9,10(需手动配置,默认为PC端口)

异步模式:

image-20241202221535506

开启串口中断

image-20241202221524345添加的头文件

>stdio.h(标准输入输出头文件)

stdio.h头文件中包含了以下几类函数:

  1. 输入输出函数
    • printf:格式化输出函数,用于将数据输出到标准输出(通常是屏幕)。
    • scanf:格式化输入函数,用于从标准输入(通常是键盘)读取数据。
    • fopen:打开文件。
    • fclose:关闭文件。
    • fread:从文件中读取数据。
    • fwrite:向文件中写入数据。
    • fgets:从文件中读取一行数据。
    • fputs:向文件中写入一行数据。
  2. 文件操作函数
    • remove:删除文件。
    • rename:重命名文件。
    • tmpfile:创建临时文件。
    • tmpnam:生成临时文件名。
  3. 控制函数
    • setbuf:设置缓冲区。
    • setvbuf:设置缓冲区。
    • getchar:从标准输入读取一个字符。
    • putchar:向标准输出写入一个字符。

>string.h(字符串处理头文件)

string.h头文件中包含了以下几类函数:

  1. 字符串操作函数
    • strlen:计算字符串的长度。
    • strcpy:复制字符串。
    • strncpy:复制字符串的一部分。
    • strcat:连接两个字符串。
    • strncat:连接两个字符串的一部分。
    • strcmp:比较两个字符串。
    • strncmp:比较两个字符串的一部分。
    • strchr:查找字符串中首次出现的字符。
    • strrchr:查找字符串中最后一次出现的字符。
    • strstr:查找子字符串。
    • strtok:分割字符串。
  2. 内存操作函数
    • memcpy:复制内存块。
    • memmove:移动内存块。
    • memcmp:比较内存块。
    • memset:设置内存块。
  3. 字符操作函数
    • isalpha:检查字符是否为字母。
    • isdigit:检查字符是否为数字。
    • islower:检查字符是否为小写字母。
    • isupper:检查字符是否为大写字母。
    • isspace:检查字符是否为空白字符。
    • toupper:将字符转换为大写。
    • tolower:将字符转换为小写。

声明串口句柄

UART_HandleTypeDef huart1;

因为CubeMX中自动生成了串口初始化,并包含在MX_GPIO_Init()中,故不用再次初始化

设置串口

串口发送

sprintf(str, "%04d:Hello,world.\r\n", counter);//**格式化字符串**
HAL_UART_Transmit(&huart1,(unsigned char *)str, strlen(str), 50);//**通过UART发送字符串**

串口接收

main():

HAL_UART_Receive_IT(&huart1, rx, 1);//启动接收中断。
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)//串口接收回调函数(弱函数)
{
	GPIOC->ODR = ((rx[0]  <<  8) | 0x00FF);//将接收到的二进制数据写入C端口,控制LED
	HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);//1选通锁存器
	HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);	//0	锁存
	HAL_UART_Receive_IT(&huart1, rx, 1);
}

更新ing.......

标签:字符,头文件,函数,UART,嵌入式,蓝桥,串口,字符串
From: https://www.cnblogs.com/tianwuyvlianshui/p/18587729

相关文章

  • Qt编写嵌入式linux输入法/支持自定义词语和繁体/支持wayland和watson/纯QWidget/界面
    一、功能特点纯QWidget编写,原创输入法机制,没有任何第三方动态库的依赖。支持各种Qt版本,包括Qt4、Qt5、Qt6及后续版本。支持各种编译器,包括mingw、msvc、gcc、clang、wasm等。支持各种目标平台,包括windows、linux、macos、android、嵌入式linux等。支持任意控件输入,包括文本......
  • 嵌入式基础:Linux C语言:Day7
    重点函数:strlen()函数\strcpy()函数\strcat实现\strcmp()实现一、字符数组<1>概念字符数组本质上就是一个数组,保存一个个字符,也一般用来保存字符串字符串由多个字符组成的一个字符组,一般用“”括起来<2>定义:char数组名[数组长度];<3>初始化:单字符全部初始化单字......
  • 嵌入式C语言中串口输出重定向实现
        嵌入式学习、做项目,经常都会用到串口,而用串口最多的时候,就是类似printf这种打印输出的时候。比如:打印输出日志信息打印输出调试信息查看实时数据等    而printf基本都会用到“重定向串口” ,本文结合这个问题,来简单分享一下相关内容。嵌......
  • 嵌入式Linux,文件I/O深入探究,函数相关详解。
    1. 返回错误处理在Linux系统下对常见的错误做了一个编号,每一个编号都代表着每一种不同的错误类型,当函数执行发生错误的时候,操作系统会将这个错误所对应的编号赋值给errno变量,每一个进程都维护了自己的errno变量,它是程序中的全局变量,该变量用于存储就近发生的函......
  • 蓝桥杯准备训练(lesson2 ,c++)
    3.1字符型char//character的缩写在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,字符是⽤单引号括起来的,如:‘a’,‘b’,‘@’。为了能说明这些字符,给他们抽象出⼀种类型,就是字符型,C语⾔中就是char。ASCII编码我们知道在计算机中所有的数据都......
  • 蓝桥杯准备训练(lesson1,c++方向)
    前言报名参加了蓝桥杯(c++)方向的宝子们,今天我将与大家一起努力参赛,后序会与大家分享我的学习情况,我将从最基础的内容开始学习,带大家打好基础,在每节课后都会有练习题,刚开始的练习题难度很低,但希望大家也简单的做一下,防止与课程脱节,最后希望大家都能取得好成绩。1、工具安装......
  • 「嵌入式系统设计与实现」书评:初步印象
    本文首发于:【「嵌入式系统设计与实现」阅读体验】+初步印象-社区活动专版-电子技术论坛-广受欢迎的专业电子论坛!感谢电子发烧友论坛和电子工业出版社的赠书。我自己从事嵌入式系统的教学工作,也指导过学生参加嵌入式相关的比赛并获得过一些奖项。《嵌入式系统设计与实现......
  • 嵌入式硬件工程师面试题
    1、请解释WatchDog(看门狗)的工作原理。看门狗有两个重要信号:时钟输入和复位输出。电路工作时,CPU送出时钟信号给看门狗,即喂狗。如果系统出现故障,CPU无法送出连续的时钟信号,看门狗即输出复位信号给CPU,复位系统。2、晶体管基本放大电路有共射、共集、共基三种接法,请简述这......
  • 嵌入式开发之ARM(一)
    目录1、认识RAM1.2、ARM全球分布1.3、ARM产品线 1.4、授权的厂商 1.5、ARM体系架构1.6、ARM系统硬件组成和运行原理 2、搭建开发环境3、ARM的工作模式及寄存器3.1、ARM工作模式3.2、ARM工作模式及寄存器框图3.2.1、CPSR寄存器1、认识RAM成立于1990年11月,前......
  • Expert电子实验室--嵌入式多功能调试器Exlink硬件分析
    哈哈,容我介绍一下,如果大家对电子感兴趣,可以看一下下面的图片,会经常更新优秀的原创文章。再次感谢每一个努力的电子爱好者。1前言开源链接:Exlink最好用的嵌入式多功能调试器大家好呀,在浏览网站的时候,突然看到这样的一个作品,瞬间眼前一亮。这个项目是Expert电子实验室设计的。......