对于各个模块的学习,开始通常是只使用最简单的功能。这里将给出一个stm32f103的最基本的串口收、发驱动。要使用串口,就需要对串口的波特率、数据格式等进行设置。这里给出的例子是使用的usart1,它的时钟是连接在apb2上的,在计算波特率时应该使用apb2的输出时钟。另外,使用查询方式的话,还需要禁止掉串口的相关中断,以防止程序跑飞。由于stm32f103的串口引脚是跟普通io口复用的,所以在使用之前,一定要记得初始化对应的io口,选择为相应的第二功能,否则串口将无法正常工作。
首先对照stm32f103的数据手册,将相关寄存器的定义写好,放在usart.h头文件中。然后增加对串口的初始化、串口读写操作的函数即可。本测试程序功能很简单,开机时通过串口发送一个system start...的字符串,然后等待串口接收数据。当接收到数据后,将数据通过串口返回,然后流水灯工作一次,又继续等待接收数据。
本测试程序设置的波特率为9600,由宏bit_rate定义,然后在程序中计算需要设置的分频值。小数部分中的值为实际的小数部分乘以16。
部分代码如下:
#include usart.h
#include gpio.h
#define bit_rate 9600
#define usart_clk 72000000ul
//串口初始化,波特率为9600
void usart1init(void)
{
//设置波特率分频器
pbusart1_brr->div_mantissa=(usart_clk/16/bit_rate);
pbusart1_brr->div_fraction=(usart_clk/bit_rate);
//使能串口1
pbusart1_cr1->ue=1;
//0: 1 start bit, 8 data bits, n stop bit
pbusart1_cr1->m=0;
//禁止奇偶校验
pbusart1_cr1->pce=0;
//禁止串口1的所有中断
pbusart1_cr1->peie=0;
pbusart1_cr1->txeie=0;
pbusart1_cr1->tcie=0;
pbusart1_cr1->rxneie=0;
pbusart1_cr1->idleie=0;
//使能串口1发送
pbusart1_cr1->te=1;
//使能串口1接收
pbusart1_cr1->re=1;
//1位停止位
pbusart1_cr2->stop=0;
//禁止lin break detection interrupt
pbusart1_cr2->lbdie=0;
pbusart1_cr3->ctsie=0;
pbusart1_cr3->ctse=0;
pbusart1_cr3->rtse=0;
pbusart1_cr3->dmat=0;
pbusart1_cr3->dmar=0;
pbusart1_cr3->scen=0;
pbusart1_cr3->nack=0;
pbusart1_cr3->hdsel=0;
pbusart1_cr3->irlp=0;
pbusart1_cr3->iren=0;
pbusart1_cr3->eie=0;
//txd引脚设置(连接在pa9上)
gpioa_mode9=3; //50mhz 输出模式
gpioa_cnf9=2;//第二功能推挽输出模式
//rxd引脚设置(连接在pa10上)
gpioa_mode10=0; //输入模式
gpioa_cnf10=1;//高阻输入
}
//从串口1等待1字节数据
unsigned char usart1getchar(void)
{
while(!pbusart1_sr->rxne);
return pbusart1_dr->dr;
}
//往串口1发送1字节
void usart1putchar(unsigned char value)
{
while(!pbusart1_sr->txe);
pbusart1_dr->dr=value;
}
//往串口1发送一个字符串
void usart1putstring(unsigned char *pstring)
{
unsigned int i;
i=0;
while(pstring[i])
{
usart1putchar(pstring[i]);
i++;
}
}
stm32/stm8
意法半导体/st/stm
LG计划在华设OLED面板厂 地点花落广州
移远通信斩获七个模组集采项目
机器人上岗 确保企业安全生产
魅族Pro7什么时候上市?魅族Pro7最新消息:高性能、高颜值将开启曲面屏新时代!
eBPF指令集v1.0使用规范介绍
STM32F103的简易串口驱动(查询方式)
T5/T8灯管、led灯管\t8led日光灯专用贴片陶瓷电容
本征的表面赝电容储钠行为简析
你知道洗衣机应该怎么用吗 这里面的窍门你知道吗
显示器维修方法
O-RAN到底是什么,它有什么特别之处
重磅!具备商用条件的 5G无人机全球首飞成功
小米手机销量迎来触底反弹的曙光
华为员工家属:华为人收入高背后是全家人的付出
北京首都机场引入令令开门无接触乘梯
索尼今日或发布四款新品手机
斯坦德不做选择题,实现封测物流自动化
湖南温室大棚智能管理系统,自动化集成系统,温室环境采集系统
晶闸管的工作原理、结构及作用
微芯将以8.3亿美元收购竞争对手SMSC