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

网站焦点图素材网站开发所得税

网站焦点图素材,网站开发所得税,上杭网页设计,做电商海报的网站USART基本结构 串口发送信息 启动串口一的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);初始化对应串口一的时钟,引脚,将TX引脚设置为复用推挽输出。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitTypeDef GPIO_In…

USART基本结构

在这里插入图片描述

串口发送信息

启动串口一的时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

初始化对应串口一的时钟,引脚,将TX引脚设置为复用推挽输出。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);

配置串口一配置寄存器,设置波特率为9600,关闭硬件流控,不使用校验位,数据长度为八字节

USART_InitTypeDef  USART_InitStruct;
USART_InitStruct.USART_BaudRate=9600;
USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART_InitStruct.USART_Mode=USART_Mode_Tx;
USART_InitStruct.USART_Parity=USART_Parity_No;
USART_InitStruct.USART_StopBits=USART_StopBits_1;
USART_InitStruct.USART_WordLength=USART_WordLength_8b;
USART_Init(USART1,&USART_InitStruct);

封装串口发送字节函数

void Serial_SendByte(uint8_t Byte)
{USART_SendData(USART1,Byte);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)== RESET);	
}

封装串口发送字符串函数

void Serial_SendString(char *String)
{uint8_t i;for (i=0;String[i]!='\0';i++){Serial_SendByte(String[i]);}
}

封装串口发送数组函数

void Serial_SendArray(uint8_t *Array,uint16_t Length)
{uint16_t i;for (i=0;i<Length;i++){Serial_SendByte(Array[i]);}
}

封装串口发送数字函数

uint32_t Serial_Pow(uint32_t x, uint32_t y)
{uint32_t Result = 1;while(y--){Result *= x;}return Result;
}
void Serial_SendNumber(uint32_t Number, uint8_t Length)
{uint8_t i;for(i=0; i<Length; i++){Serial_SendByte(Number / Serial_Pow(10,Length-i-1)%10);}
}

进阶一:重定向print输出到串口中

/*fputc是print函数的底层所以,修改底层文件就能将print输出重定向到串口。
*/
int fputc(int ch, FILE  *f)
{Serial_SendByte(ch);return ch;
}

进阶二:封装Serial_Sprintf完成串口输出功能

/*
char String[100];
sprintf(String,"Num=%d\r\n",666)
Serial_SendString(String);
等价于以下这行代码
printf("Num=%d\r\n",666)
*/
void Serial_Printf(char *format, ...)
{char String[100];va_list arg;va_start(arg,format);vsprintf(String,format,arg);va_end(arg);Serial_SendString(String);
}

注意:
①发送和接受均不需要手动清除发送或接收标志位,因为当发送字节或者读取字节内容时,硬件会自动清0
②Serial_Printf(“串口输出也支持中文输出”);
当编码格式为 UTF-8时才需要配置参数 --no-multibyte-chars
当编码格式为GB2312时则不需要配置参数

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

相关文章:

  • 做照片书的网站wordpress 彩色标签
  • 青岛建网站哪个好电影网站html代码
  • 汽车之家如何做团购网站网站建设51cto
  • 网站优化建议书台州建设信息港网站
  • 阿里云有主体新增网站微信小程序怎么做
  • 站长工具怎么用wordpress .po文件
  • 上海定制建站网站建设wordpress标签页面模板
  • 2017最新网站icp备案吉林省四平市网站建设
  • 网站发布服务托管器博罗网站开发
  • 织梦软件网站模板下载用花生棒自己做网站
  • 网站备案变更公司名称阿里巴巴logo设计含义
  • 厦门网站建设屈兴东python菜鸟教程
  • 网站里面的链接怎么做psd素材免费下载网址
  • 做鞋子网站的域名wordpress 项目
  • 国内全屏网站有哪些制作公司网页官网
  • 18款禁用网站app直播恢复原来的网站
  • 千城网站建设中山网站设计素材
  • 网站建设是 口号网站的开发流程
  • 专业网站托管的公司讲究 网站
  • 赤峰做网站建设的企业江苏省做网站
  • 网站建设宣传的目的项目设计课题研究高中综合评价
  • 校园网站建设计划做网站 做app
  • 没有版权的图片网站毕业设计代做网站有哪些
  • 如何把网站一个栏目做301跳转贵港哪里有网站建设推广
  • 外贸网站建设加推广郑州全网营销推广
  • 昆明网站建设优化图片搜狗推广管家下载
  • 广东网站建设专业公司哪家好网络营销策略案例分析
  • 云主机开网站教程深圳注册公司注册地址要求
  • 做网站的公司广州wordpress单栏主题 极简
  • 平台网站定制微信开店怎么注册开店流程