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

合肥网站建设服务设计工作室装修

合肥网站建设服务,设计工作室装修,专门做岛屿的网站,制作单位网站1.发送函数 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout); 参数1: UART 处理结构体的指针,该结构体包含了 UART 的所有配置参数。 参数2:要发送的数据指针 参数3&…

1.发送函数

HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);

参数1: UART 处理结构体的指针,该结构体包含了 UART 的所有配置参数。

参数2:要发送的数据指针

参数3:要发送的数据长度(单位:字节)

参数4:超时时间 (单位ms,如果在该时间内没有完成,则直接执行下一条语句,并且返回HAL_timeout)

返回值:

  • HAL_OK: 操作成功。
  • HAL_ERROR: 发生错误

2.接收函数

HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);

参数:

参数1: UART 处理结构体的指针,该结构体包含了 UART 的所有配置参数。

参数2:要接收数据的变量指针

参数3:要接收的数据长度(单位:字节)

参数4:超时时间 (单位ms,如果在该时间内没有完成,则直接执行下一条语句)

返回值:

  • HAL_OK: 操作成功。
  • HAL_ERROR: 发生错误

以上是HAL库进行数据收发的函数,不过一般使用printf和scanf。因为printf和scanf会调用fputc和fgetc,因此重写fputc和fgetc执行数据收发。在重写之后就可以直接使用printf和scanf函数进行数据的收发。

fgetc重写1:int fputc(int ch,FILE *f){HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,10);return ch;
}fputc重写2:int fputc(int ch,FILE *f){while(!(USART1->ISR&(1<<7)));USART1->TDR=ch;return ch;}fgetc的重写:int fgetc(FILE *f){uint8_t ch;while(!(USART1->ISR&(1<<5)));ch=USART1->RDR;return ch;
}

因为scanf会自动在字符串末尾加上\0(win为\r),因此相较于Hal原生函数,scanf不需要对其他进行关心。

1.当STM32接收到串口助手的命令后,控制马达震动,表示有数据接收

	scanf("%s",buffer);if(!strcmp(buffer,"motor")){HAL_GPIO_WritePin(GPIOC,GPIO_PIN_7,1);//			HAL_GPIO_WritePin(GPIOC,GPIO_PIN_6,1);}else{printf("not motor code");}

2.当STM32收到LED1_ON时,打开LED1收到LED1_OFF时,关闭LED1

scanf("%s",buffer);if(!strcmp(buffer,"LED1_ON")){HAL_GPIO_WritePin(GPIOC,GPIO_PIN_4,1);}else if(!strcmp(buffer,"LED1_OFF")){HAL_GPIO_WritePin(GPIOC,GPIO_PIN_4,0);}else{printf("not led1 code");}

3.当STM32收到LED3_ON时,打开LED3 收到LED3_OFF时,打开LED3

scanf("%s",buffer);if(!strcmp(buffer,"LED3_ON")){HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,1);}else if(!strcmp(buffer,"LED3_OFF")){HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,0);}else{printf("not led3 code");}


4.当STM32收到STATUS时:将LED1 LED3光电开关的状态,推送到串口助手中
 

	if(!strcmp("STATUS",buffer)){int a=HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_4);int b=HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13);printf("led1 status :%d",a);printf("led3 status :%d",b);}else{printf("not status code");}

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

相关文章:

  • 做网站去哪里做好陕西商城网站建设
  • 湖南网站建设公司 干净磐石网络网站内文章外链如何做
  • 制作网站的步骤和过程宁波网站建设哪家公司好
  • 有动效网站在线网页设计器
  • c 网站开发实例深圳市住房和建设局官网网址
  • 做网站教程pdfseo引擎优化
  • 微信小程序 做网站wordpress shortcodes
  • 高端手机淄博seo
  • 关注网站怎么做郑州最新发布信息
  • 关于网络编辑作业做网站栏目新闻的pptwordpress 主题 不兼容
  • 网站建设竞标需要怎么做怎么将自己做的网站放到网上
  • 怎么用PS做网站广告图上海展台搭建商
  • 口碑营销的案例及分析南昌seo网站排名
  • google seo网站 被k手机影视网站开发
  • 做网站去哪个平台信用信息查询公示系统
  • 常州网站建设招聘电子商务哪个专业最吃香
  • 国际电子商务网站建设建设网上银行查询
  • 门户网站 开发注意套路网站怎么做的
  • 众筹网站建设方案模板380元网站建设
  • 北京做一个网站多少钱网站建设的开发语言
  • 济南最好的网站制作公司国内wordpress自己开发主题
  • 网站建设中怎么写景区网站建设
  • 网站设计开发公司网站建设的目标
  • 做推广哪个网站效果好信息化网站建设的请示
  • 制作小程序网站源码长沙本土网站建设公司
  • 广州大石附近做网站的公司网站建设之家
  • 营销网站类型wordpress加载缓慢
  • 郑州网站建设 .cc博客做资讯类网站
  • 写网站建设的论文网站开发的付款方式
  • 广州做网站厉害的公司百度关键词怎么排名