完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
一、寄存器与基于固件库编程方式的差异
相对于库开发的方式,如果我们直接配置寄存器,这种方式生成的代码量是更少一点,但我们用的是stm32,这就不一样了,因为stm32 的资源是充足的,所以我们可以也愿意牺牲CPU 资源来投入库开发。而我们也发现固件库编写方式更为简单,连我这种新人理解也很容易,网上这方面的资料也更多。 二、STM32的USART窗口通讯 1.准备 和之前的实验一样,我们用到了如下工具设备: 高速仿真器 野火指南者STM32F103VET6高速版 keil5 串口调试助手Fire Tools(v1.0.1.5) USBQ驱动CH340(只有开发板串口有驱动,仿真器不用安装驱动) 2.实验 像之前一样,连好设备,确认好设备无误后,打开开关。 还是要注意串口这个地方的链接!不然要出大问题: 安装USB转串口驱动CH340(在自己买的开发板的店铺找相关资料) 安装串口多功能调试助手Fire Tools 这个是跟我的开发板配套的调试助手 直接点击就用 串行口调试设置波特率为115200,1位停止位,无校验位 然后我们打开相应工程,如下图 这是学习资料里自带的工程,现在我们进行一些修改 上图是修改的main.c和stm32f10x_it.c 现在进行编译,没有问题 点击魔术棒进行配置 研究了一下,发现SWJ其实两个选择都可以,因为是高速仿真器,配置完成。现在进行调试和烧录。 烧录成功!现在来看结果。 完成 三.C语言程序里全局变量、局部变量、堆、栈 我们可以把内存作为4个分区:栈、堆、全局(静态)存储区和常量存储区 1.栈、堆、全局(静态)存储区和常量存储区 (一)栈 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 (二)堆 堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。 (三)全局/静态存储区 可以理解为全局变量和静态变量被分配到同一块内存中 (四)常量存储区 和“全局/静态存储区”差不多,只不过存放的是常量 2.ubuntu系统中编程 创建.c文件,并用gcc执行,结果 3.keil验证 |
|
|
|
只有小组成员才能发言,加入小组>>
3318 浏览 9 评论
2995 浏览 16 评论
3494 浏览 1 评论
9063 浏览 16 评论
4088 浏览 18 评论
1185浏览 3评论
611浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
601浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2337浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1897浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 13:10 , Processed in 1.040858 second(s), Total 50, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号