蓝桥杯嵌入式
LED:LD1~8 ---PC8~15,低电平电亮
锁存器LE:PD2,=1选通,=0锁存
key:
从上到小,按键B1~4,
PB0~2,PA0,上拉,检测低电平
移植LCD:
不需要再CubeMX中进行引脚配置
仅需要将fonts.h,led.h,led.c添加进工程文件夹
main中不能引用#include "fonts.h",会导致递归引用,发生报错
串口通信
UART1(9600)
PA9,10(需手动配置,默认为PC端口)
异步模式:
开启串口中断
添加的头文件
>stdio.h
(标准输入输出头文件)
stdio.h
头文件中包含了以下几类函数:
- 输入输出函数:
printf
:格式化输出函数,用于将数据输出到标准输出(通常是屏幕)。scanf
:格式化输入函数,用于从标准输入(通常是键盘)读取数据。fopen
:打开文件。fclose
:关闭文件。fread
:从文件中读取数据。fwrite
:向文件中写入数据。fgets
:从文件中读取一行数据。fputs
:向文件中写入一行数据。
- 文件操作函数:
remove
:删除文件。rename
:重命名文件。tmpfile
:创建临时文件。tmpnam
:生成临时文件名。
- 控制函数:
setbuf
:设置缓冲区。setvbuf
:设置缓冲区。getchar
:从标准输入读取一个字符。putchar
:向标准输出写入一个字符。
>string.h
(字符串处理头文件)
string.h
头文件中包含了以下几类函数:
- 字符串操作函数:
strlen
:计算字符串的长度。strcpy
:复制字符串。strncpy
:复制字符串的一部分。strcat
:连接两个字符串。strncat
:连接两个字符串的一部分。strcmp
:比较两个字符串。strncmp
:比较两个字符串的一部分。strchr
:查找字符串中首次出现的字符。strrchr
:查找字符串中最后一次出现的字符。strstr
:查找子字符串。strtok
:分割字符串。
- 内存操作函数:
memcpy
:复制内存块。memmove
:移动内存块。memcmp
:比较内存块。memset
:设置内存块。
- 字符操作函数:
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