历史上的今天
今天是:2025年02月22日(星期六)
2020年02月22日 | STM32嵌入式开发学习笔记(一)
2020-02-22 来源:eefocus
本文中,笔者将介绍使用嵌入式开发工具Keil uVision5,使用C语言,对微处理器STM32F103C8进行嵌入式开发。
开发使用C语言,首先需要新建一个C语言文件,将其设为主函数的入口,因此,将此文件命名为main.c
配置好软硬件依赖环境后,在此文件中键入如下内容,尝试编译,如果能够编译成功说明环境配置成功。
stm32f10x.h库的功能是提供对于stm32f10x系列开发板的所有功能的定义与实现,因此在头文件中要加一句。
#include #include int main(){ return 0; } 实验1:让小灯常亮 查阅STM32技术手册,可知管脚A1-4是用于控制小灯的,然而,要操控管脚A1-4,我们要先使能GPIOA的时钟信号 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); 然后,我们定义一个GPIO结构体,用于操控小灯 GPIO_InitTypeDef GPIO_LED_INIT; 根据技术手册,GPIO_InitStruct类型结构体有以下三个成员: typedef struct { u16 GPIO_Pin; GPIOSpeed_TypeDef GPIO_Speed; GPIOMode_TypeDef GPIO_Mode; } GPIO_InitTypeDef; 分别代表控制哪个或哪些管脚,信号速率和工作状态。 其中,工作状态分为输入和输出,输出状态又分为(复用)开漏输出,(复用)推挽输出。 我们在此实验中仅操控第1个led灯,因此只操控时钟GPIOA控制下的管脚1,信号速率设置为2MHz,工作模式设置为推挽输出。 GPIO_InitTypeDef GPIO_LED_INIT; GPIO_LED_INIT.GPIO_Pin=GPIO_Pin_1; GPIO_LED_INIT.GPIO_Speed=GPIO_Speed_2MHz; GPIO_LED_INIT.GPIO_Mode=GPIO_Mode_Out_PP; 然后我们根据以上设置初始化此结构体,并用GPIO的置位函数,令管脚输出信息,从而让小灯亮起。 GPIO_Init(GPIOA,&GPIO_LED_INIT); GPIO_SetBits(GPIOA,GPIO_Pin_1); 实验2:让四个小灯同时闪亮 想同时操控多个小灯,只需要将GPIO_Pin的参数按位或起来。 GPIO_Pin是一个无符号16位整数,实际上,它的每一位表示一个时钟控制下16个管脚的开闭,0代表无信号,1代表有信号。 GPIO_Pin_x的宏定义,实际上也是一个16位整数,某一位为1,其他位为0 GPIO_LED_INIT.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4; 要让小灯闪亮,其亮灭的时间就必须有一定延迟,人眼才能看出。在嵌入式开发中无法使用Sleep()函数,因为Sleep()函数依赖于操作系统的时钟。 因此,要手写一个函数阻塞开发板处理器的运行。 void Delay(int time){ for(int i=0;i
史海拾趣
|
最近在研究一块板子,就是用书上说的tftp、nfs之类的方法,现在把文件系统已经移到了SD卡上,但板子加电启动的时候中间还是要经过漫长的一段过程……最后再找SD卡挂载上面得fs…… Sending DHCP requests ...eth0: no IPv6 routers present ... t ...… 查看全部问答> |
|
在网上下载了2个版本的中星微linux下的驱动,同样是HV7131b的sensor,两个版本格式却不一样。一个是: static U16 hv7131bxx_start_data[][3] = { {0xA0, 0x01, 0x0000}, {0xA0, 0x10, 0x0002}, {0xA ...… 查看全部问答> |
|
有谁在 vista x64 下 安装过 passthru 驱动的,来指点下 我使用微软提供的 WDK 6000 bindview 程序(超级用户权限, X64的版本)在 vista x64 下安装 passthru 驱动 发现,只有使用 pncClassSetup->SelectAndInstall 方法才能反复安装成功, pncClassSetup->Install 只能在没安装过 自己驱动的机器上安装 ...… 查看全部问答> |
|
如题,选用的是Altera的Cyclone芯片,具体型号是EP1C12,有点搞不清楚IO输出电平,看资料好像有LVTTL,LVCMOS等形式的,我的电路输出接口要求是用OC门输出,打算加入一篇74LS06或者74LS04,但是不知道输入的电平是否匹配。 有人用过FPGA输出OC门么 ...… 查看全部问答> |
|
由于公司扩展,急需招聘Windows Mobile/Win CE应用工程师 有意者发送简历到simonjin@gotoup.cn或直接发送到hr@gotoup.cn 公司简介: 上海向上信息科技有限公司是一家专业从事智能手机研究、开发的高新技术企业。主要 ...… 查看全部问答> |
|
wince 5/6能访问asp的商务网站么?有可能么? 我想在以下的开发板上跑wince 5或6,做商务网站客户端 通过有线或无线网卡浏览asp的商务网站可行不? 硬件平台: arm 2410 sdram &nb ...… 查看全部问答> |




