STM32F103C8T6学习笔记_串口USART的使用

2019-10-23来源: eefocus关键字:STM32F103C8T6  串口  USART

1、     M  bps                 兆   比特每秒                   Million     bits per second      (形容传输速率)


    波特率(BaudRate)(bound )          单位 Bd    (形容传输速率时  Bd/s)


如果是二进制的话 , 都表示单位时间内传输的二进制数


2、波特率计算公式


baud=串口时钟(APB1 or APB1)   /   USART_BRR寄存器的值


Example    时钟108M (108000000  六个0)              baud=115200MHz        则得寄存器值938    (0XA3AA)


3、 GPIO的复用


TXD    Transmit(tx)  Data    发送数据


RXD    Receive(rx)  Data     接受数据




USART1_TX    PA.9    设置成复用推挽输出      GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;


USART1_RX    PA.10  设置成浮空输入             GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;


4、单工                           单向      一方传送信息到另一方


      全双工    同一时间    双向      发送数据 同时也可以接受数据


      半双工                      双向       发送   或者   接受


USART_InitStructure.USART_Mode=USART_Mode_Rx | USART_Mode_Tx     //设置成半双工模式


5、奇偶校验   parity


00000000(8位)+0 or 1(1位)   奇校验 就在(1位)这里写1 或者 写0   使得1的总个数为奇数


........................................................偶校验....................................................使得1的总个数为偶数


发送端发送一个字符编码(9位)【偶数】==接收端接收到的编码(9位) 【偶数】   检验成功


奇校验同理; 


6、数据位    8   7   6    5     WordLength


例如数据位设置为5.那么就相当于规定了每个传输字节只能由5个二进制来表示,例如   11111、10110 、01110等。也就是说只能发送00000—11111这个范围内的数。


7、停止位    1   1.5    2        StopBits


 停止位表示传输结束(也可以校正  发  收   两端的时钟  达到同步的目的)    停止位越多,不同时钟同步的容忍程度越大    数据传输速度慢


 8、一般无硬件数据流控制(很少用)  HwFlowCtl


    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl None;      //无硬件数据流控制


9、oversampling 采样过密     sampling 采样

关键字:STM32F103C8T6  串口  USART 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic478053.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32开源代码——UART串口程序
下一篇:stm32f103双串口收发(调试通过)

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

stm32f103 c6t6 CAN总线的配置
KEIl5 环境下 中文显示复制过来有问题又懒得打字
发表于 2019-11-13
stm32f103 c6t6 CAN总线的配置
STM32学习【2】STM32F103C8T6串口2USART2程序
STM32F103C8T6串口1(PA10/RXD1,PA9/TXD1)用来烧写程序,串口2(PA3/RXD2,PA2/TXD2)接串口模块与电脑串口助手通信。IO口PA1接LED+470R电阻+D3V3。调试后,能正常运行的程序如下:#include "stm32f10x.h"#include "stm32f10x_usart.h" #define LED_ON  GPIO_ResetBits(GPIOA ,GPIO_Pin_1)#define LED_OFF GPIO_SetBits(GPIOA ,GPIO_Pin_1) void GPIO_Config
发表于 2019-10-16
STM32学习【2】STM32F103C8T6串口2USART2程序
Stm32f103c8t6工程模板(内部晶振)源码
虽说内部晶振相对外部晶振误差较大,但是在大部分情况下不需要太高的精确度,使用内部晶振就可以搞定。单片机源程序如下:#include "config.h"Sys_timeTypeDef Systime={0,0,0,0};u8 once=0;void Init_Systick(void)   //滴答定时器{                SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);        SysTick_C
发表于 2019-10-14
STM32F103C8T6使用普通IO口模拟串口收发
在单片机用基本定时器来完成这样的事情。。。。即完成非阻塞式通讯!(1)定时器开启如下:(2)调用发送函数:UART4_Send_Buf(...);//注意STM32F103C8t6是没有串口4的!!!这是虚拟串口!!(3)调用的发送函数里面开启了定时器,所以接下来将在定时期中断中进行发送操作发送函数模拟了串口的时序:开始-发送-结束发送完一个字节,然后从缓冲区callback(),调用下一个字节进行传输!代码段如下:static void send_remain_byte(void){ if(VirtualUart.send_cnt>=VirtualUart.send_max) { VirtualUart.send_flag
发表于 2019-09-11
STM32F103C8T6使用普通IO口模拟串口收发
STM32F103C8T6 Standby低功耗模式
1. 开发环境:winXPMDK4.45STM32 3.5固件库2. 低功耗模式简介刚接触PWR的内容,使用手册说的不太能让我好理解。其实当你弄懂了以后再回去看使用手册还是能找到的,只是写的过于简略,对于初学者很多地方理解不到位。 这个小总结完全从初学者角度,目的只有一个:进入/唤醒 PWR的standby模式。其实更多的是如何配置进入,唤醒基本上是配置好了后自动完成或硬件出发的,我们需要做的退出后的设计。这块内容暂不作为本次讨论内容。NVIC  和 PWR 各寄存器状态决定三种低功耗模式:低功耗模式一览表 PS: STM32F的NRST是异步复位脚。当NRST输入低电平的时候,MCU处于
发表于 2019-09-11
STM32F103C8T6 Standby低功耗模式
关于串口唤醒STM8L151低功耗HALT模式的方法——外部中断法
以前看到一款xx公司的低功耗产品,用的是STM8L151的MCU,无线模组是LORA或者NB模组,因为我选择用的另一款M0+核的芯片,所有也一直没有太多时间去研究那个产品究竟是怎么用串口唤醒M0核的MCU STM8L151的。M0+核的在低功耗处理上方便太多,串口可直接唤醒。想不明白在HALT模式下功耗为什么如此之低,因为在HALT模式下MCU是不支持串口唤醒的。后来通过试验,发现了其中奥秘:实现这个功能需要绕个弯弯。首先M0定义MCU HLAT时候只能通过外部中断或者RTC自动唤醒,所以一定是串口先设置成为了外部中断唤醒。核心思路是舍弃串口信息的前一段信息。串口唤醒HALT模式下的STM8L步骤如下:在进入HLAT之前,设置串口
发表于 2019-11-15
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved