教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

STM32f103C8T6入门学习记录(4)

来源:网络收集 时间:2026-07-17
导读: 考相关手册 GPIO_Init(GPIOB , 这一句就是将前面四句的设置初始化到GPIOB中; SystemInit(); 将系统时钟设置为72M,不写这句,默认为8M; GPIO_SetBits(GPIOB,GPIO_Pin_5 ); //点亮PB.5 delay();// 延时 GPIO_Reset

考相关手册

GPIO_Init(GPIOB , &GPIO_InitStructure);

这一句就是将前面四句的设置初始化到GPIOB中;

SystemInit(); 将系统时钟设置为72M,不写这句,默认为8M; GPIO_SetBits(GPIOB,GPIO_Pin_5 ); //点亮PB.5 delay();// 延时 GPIO_ResetBits(GPIOB,GPIO_Pin_5 );//熄灭PB.5 delay(); GPIO_SetBits(GPIOB,GPIO_Pin_6 );//点亮PB.6 delay(); GPIO_ResetBits(GPIOB,GPIO_Pin_6 );//熄灭PB.6 delay();

编译链接,然后开始软件仿真

3、软件仿真介绍:

1、编译连接好后,点击debug 进入调试界面

2、调试窗口如下

3、

图片上加文字不好弄,大概就是复位、运行、停止、单步运行等我也不太熟悉,反正用到的时候试一试就知道了。

4、选择菜单栏上的 peripherals 按钮,选择general purpose I/O 的GPIOB

5、点击左上角的运行按钮 或者按F5键 就可以看到GPIOB的5,6 在一闪一闪的

6、顺便在看看波形仿真功能 点击下图的波形分析按钮

点击setup 按钮 会弹出一个窗口,在窗口的右上边,有个new的按钮,点击后 分别输入 PORTB.5 和PORTB.6

8、点击运行,将窗口调到合适的位置,最终波形图如下;

写得有些地方可能有错误,明天就要回四川了,有些急

2014年1月12日

第四章

串口的使用

1、为什么要用串口?

自上一篇写的时间是1月20号,今6月7号了,半年没更新了。

这半年发生了什么? 过完年就去找公司实习,在那里自我感觉进步很大。其实在公司大多都是自学,师傅基本不会给你说什么。但这并不能说明你的师傅对你不好,带我的那个师傅只比我高一届,但他的水平比我高的好多届。他也是自学,也没人告诉他该怎么做,因为老板也不太懂。 所以自学能力很重要,当然有人带你的话,这样会更好。

不说这些了,串口在调试的时候作用非常大。也学我们在学51的时候,只是将程序下载到开发板,看看是否能运行起来,通过数码管将结果显示出来,从而就知道程序设计的正确性。以前我也是这样做的,没什么不好。

在公司实习的时候,他们调试都是使用串口打印输出信息,观察程序从上电、初始化、运行数据什么的全部都显示到PC机上。然后再一句一句分析它的打印信息,从而找到出错的源头。这使我对串口的认识有更深了一步,所以我决定在学习STM32的时候,开发流程跟在公司学的方法一样——使用串口,观察打印信息。

2、STM32跟PC机(也就是电脑)如何连接

我的STM32F103C8T6只是裸板,没有串口芯片,当然用的也是学生机——笔记本电脑,同样也没串口。

解决办法1、买一块 MAX3232转接板+一条USB转串口线 +邮费=30块左右

2、只需要买一块PL2303的USB转接板。这样就将第一种的转接板和连接结合到一起了。

不过我用的是第一种,MAX3232+USB的串口线 ,为什么不用方便的2种? max3232对于没有串口的开发板可以充当电平转换芯片,如何开发板有了电平转换芯片,我便使用USB转串口线经行连接,这样便灵活了。 第二种只是用在既没转换芯片也没USB转串口的情况,不过对于最小系统板来说,它既可以下载程序,又可以当做串口来调试。 至于台式机就不需要USB转串口线了,普通串口线即可。 连接示意如下所示:

3、代码分析

再写这里之前,应该已经学过模块化编程了,STM32的每个XXX.c 和xxx.h 这都是模块化编程。良好的程序,与其好的代码风格有关。你的代码风格跟你接触教你写代码的有很大关系。 以前刚刚学习单片机编程,我还不信,现在我承认,跟教我单片机的老师风格有些像。

这里我做的是一个串口发送数据到PC机的例子: 要让STM32能够顺利发出数据,要进行如下配置

PA9,PA10管脚要配置, USART也需要配置波特率,数据有几位,停止位,数据流等。 USART和uart有什么区别 USART在做串口时,两者并不区别,但是USART有SPI的功能。还有串口通信为什么要配置波特率,停止位,硬件数据留这些,以前我也没想过,现在只觉得协议这个东西,是一个好的标准。 建立一个usart_debug.c的文本,内容如下 #include\

void GPIO_Configuration(void) {

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//使能UASRT的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA的时钟,开始的时候,我没用这句话,调了两天,跟源码一句一句比才知道 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); GPIO_InitStructure.GPIO_Pin =GPIO_Pin_9;

GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz; //波特率较高,IO翻转需较高频率 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出;我看网上有人说设置成GPIO_Mode_Out_PP普通推挽输出也行,但实践出真知,我试了发送是乱码。; GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin =GPIO_Pin_10;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //配置成浮空输入,既然是输入所以就不用配置IO口的频率了

GPIO_Init(GPIOA,&GPIO_InitStructure); }

void USART1_config(void)

…… 此处隐藏:733字,全部文档内容请下载后查看。喜欢就下载吧 ……
STM32f103C8T6入门学习记录(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/447809.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)