当前位置: 首页 > news >正文

西宁建站王也动漫

西宁建站,王也动漫,江西省建设局网站,淮南政务一、基础配置 Universal Asynchronous Receiver Transmitter 异步,串行,全双工 TTL电平 :高电平1 低电平0 帧格式: 起始位1bit 数据位8bit 校验位1bit 终止位1bit NVIC Settings一栏使能接受中断。 之前有设置LCD,…

一、基础配置

Universal Asynchronous Receiver Transmitter

异步,串行,全双工

TTL电平 :高电平1 低电平0

帧格式: 起始位1bit 数据位8bit 校验位1bit 终止位1bit

NVIC Settings一栏使能接受中断。

之前有设置LCD,那么就自动给PA9和PA10设置引脚了。但如果没有设置,默认配置的是PC4和PC5。

二、串口发送

HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t 
Timeout)
功能:串口发送数据
参数:UART_HandleTypeDef *huart  UART句柄 huart1uint8_t *pData  需要发送的数据uint16_t Size   发送的字节数uint32_t Timeout 最大发送时间,发送数据超时退出发送

案例:每次上电后发送 Hello World!

/* USER CODE BEGIN Includes */
#include "stdio.h" //使用sprintf()
#include "string.h" // 使用strlen()
/* USER CODE END Includes *//* USER CODE BEGIN PV */
char tx_buf[20];
/* USER CODE END PV *//* USER CODE BEGIN 2 */sprintf(tx_buf,"Hello World!\r\n");HAL_UART_Transmit(&huart1,(uint8_t*)tx_buf,strlen(tx_buf),50);/* USER CODE END 2 */

三、串口接收

HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
功能:串口中断接收函数
参数:UART_HandleTypeDef *huart  UART句柄 huart1uint8_t *pData   接收到的数据存放地址uint16_t Size   发送的字节数 为1,每次中断只能接收一个字符 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
功能:中断回调函数,串口中断接收完之后,会进入该函数。这是一个空函数,用户可以重写该函数,在函数里实现相应的操作。

1. 接收单个字符 

案例:接收到 O 时,点亮LED1并发送 LED1 Open! ,接收到 C 时,熄灭LED1并发送 LED1 Close!

char tx_buf[20];
uint8_t rx_data;/* USER CODE BEGIN 2 */
HAL_UART_Receive_IT(&huart1,&rx_data,1); //打开接收中断
/* USER CODE END 2 */void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{if(rx_data=='O'){ucled=0x01;sprintf(tx_buf,"LED1 Open!\r\n");HAL_UART_Transmit(&huart1,(uint8_t*)tx_buf,strlen(tx_buf),50);}if(rx_data=='C'){ucled=0x00;sprintf(tx_buf,"LED1 Close!\r\n");HAL_UART_Transmit(&huart1,(uint8_t*)tx_buf,strlen(tx_buf),50);}HAL_UART_Receive_IT(&huart1,&rx_data,1);
}

2. 接收定长字符串

void Uart_Proc(void)
{if(rx_count==4){if( strcmp(rx_buf,"LEDO")==0 ){ucled=0x01;sprintf(tx_buf,"LED1 Open!\r\n");HAL_UART_Transmit(&huart1,(uint8_t*)tx_buf,strlen(tx_buf),50);}if( strcmp(rx_buf,"LEDC")==0 ){ucled=0x00;sprintf(tx_buf,"LED1 Close!\r\n");HAL_UART_Transmit(&huart1,(uint8_t*)tx_buf,strlen(tx_buf),50);}rx_count=0;memset(rx_buf,0,20);}
}void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{rx_buf[rx_count++]=rx_data;HAL_UART_Receive_IT(&huart1,&rx_data,1);
}

3. sscanf() 解析字符串

int sscanf(const char* str, const char* format, ...);
参数:str:要解析的输入字符串。format:格式字符串,指定要匹配的格式规则。...:可变参数列表,用于接收解析后的数据。
void Uart_Proc(void)
{	//22个字符if(rx_count==22){//解析rx_buf,然后用三个参数接收数据sscanf(rx_buf,"%4s:%4s:%12s",car_type,car_num,car_time);sprintf(tx_buf,"car_type:%4s\r\n",car_type);HAL_UART_Transmit(&huart1,(uint8_t*)tx_buf,strlen(tx_buf),50);sprintf(tx_buf,"car_num:%4s\r\n",car_num);HAL_UART_Transmit(&huart1,(uint8_t*)tx_buf,strlen(tx_buf),50);sprintf(tx_buf,"car_time:%12s\r\n",car_time);HAL_UART_Transmit(&huart1,(uint8_t*)tx_buf,strlen(tx_buf),50);rx_count=0;memset(rx_buf,0,20);}
}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{rx_buf[rx_count++]=rx_data;HAL_UART_Receive_IT(&huart1,&rx_data,1);
}

 

http://www.yayakq.cn/news/744157/

相关文章:

  • 网站风格有哪些做网站是买服务器还是买主机
  • 抖音小程序开通搜索引擎优化seo多少钱
  • 免费微网站案例凡客网上做的网站能否更改域名
  • 做网站能用ai好还是ps网业无法打开?
  • 网站上传不了图片不显示不出来科技小论文500字范文
  • jsp网站开发详解 pdfwordpress浮动窗插件
  • 高稳定性的网站设计制作网站文章页内链结构不好可以改吗
  • 如何更换网站空间成都区块链网站开发
  • 网站联盟怎么做深圳市建设工程交易中心网站
  • 南通医院网站建设设计师网络平台
  • 网站建设相关视频教程有没有做链接的网站吗
  • 南京建设公司网站wordpress vatage
  • 网站设计范文网站做自签发证书
  • 唐山如何做百度的网站建设专业软文发布平台
  • 个人网站建设合同范本好的域名推荐
  • 网站编程技术有哪些怎么把产品推广到各大平台
  • 做外贸球衣用什么网站wordpress图片列表
  • 佛山新网站制作咨询即墨建设局网站
  • 专业网站建设代理网上国网app缴费
  • 企业网站建设方案有那些义乌做网站的
  • 东莞响应式网站价格金湖网站推广
  • 中国做网站的网站线上app怎么做
  • 保定市建网站的公司电脑当网站空间
  • 手机网站建设多少钿做网站哪些公司好
  • 南京网站建设报价昆山网站建设培训学校
  • 大连宏帝建设网站wordpress网站响应时间
  • 有没有免费的seo网站有人免费有片视频吗
  • 做网站前期构架图做直播网站赚钱
  • 仿新浪微博网站代码市场调研公司和咨询公司
  • 最便宜的酒店网站建设郑州个人网站开发