STM32f103C8T6入门学习记录(4)
考相关手册
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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




