推荐阅读最新更新时间:2024-10-30 00:30
基于stm32的keil开发环境搭建
1 只要按照下面的一步步来,绝对能从0开始建立一个STM32工程。不仅包括工程建立过程,还有Jlink设置方法。本文使用芯片为STM32F103CB。 1 下载stm32F10x的官方库 2 新建工程 工程名设为stm32_demo,选择芯片型号为STM32F103B,如图: 因为下载的stm32库中有启动代码,所以这里选择 否 ,不拷贝启动代码。 在工程文件下,新建Startup 、Headers、User、Libraries、CMSIS、Lists、Output文件夹。 至此,stm32的工程文件结构如下 3 库文件拷贝 把下载stm32库中文件拷贝到新建工程中 文件
[单片机]
proteus与keil Cx51的单片机仿真(按键亮灯)
电路图 C程序: #include reg51.h sbit K01=P1^4; sbit K02=P1^5; sbit K03=P1^6; sbit K04=P1^7; sbit VD17=P3^0; sbit VD18=P3^1; sbit VD19=P3^2; sbit VD20=P3^3; void delay() {unsigned char i,j;for(i=0;i 255;i++)for(j=0;j 255;j++);}//延时程序 void main() { while(1) { if(K01==0)//P1.4引脚输入低电平,按键K01被按下(检测按键) { delay();//延时一段时间继续检测
[单片机]
STM32点亮第一个LED使用keil for ARM MDK 软件仿真
简介:软件仿真在一定程度上可以在设计的初期发现程序的错误,减少我们下载到开发板的麻烦。但是纯软件的仿真的正确,也不能保证程序就正确。有时候仿真正确,实物却没这个效果。有时软件仿真结果是错误,你分析你的程序却没错误。 遇到多了,经验也就出来,前几天我仿真一个STM32的Systick,仿真结果就不对,程序就是对的,我估计也许是软件本身的问题。 我建议用STM32+JLINK进行仿真,有个硬件平台结果的正确性就有保证。 Main.c函数代码: #include stm32f10x.h voiddelay(void) { inti,j; for(i=1000;i 0;i--) for(j=1000;j
[单片机]
利用Keil Cx51实现T0的精确定时
利用89C51设计一个简易日历时钟系统,时钟系统硬件主要由单片机控制的计时电路、复位等辅助电路、按键电路、数码管显示电路、电源系统等组成。日历时钟可以显示年、月、时、分、秒;可以设置年、月、时、分。其中计时控制电路由AT89C51单片机控制;按键电路包含时间设置;时间显示屏电路由7个数码管组成;电源系统由小功率整流滤波稳压电路组成,输出直流电压5 V,向主电路及显示电路供电。系统框图如图1所示。 在计时过程中,系统利用89C51自身的计时器T0作为时钟基准,计时器中断的准确度直接关系到整个系统的精度,因此获取精确的定时时钟信号成为该系统的关键。MCS-51单片机内有2个可编程的16位定时器/计数器,在本系统设计中采用AT89
[单片机]
STM32F0系列MCU硬件电路供电设计
对于任何IC的电源设计要求,都可以在规格书中获取到需要的信息。STM32F0系列MCU电源轨信息和要求可以在规格书第53页的Table 24看到,如下图(图一)所示。 (图一) 如上图(图一)中圈出,STM32F0系列MCU主要有VDD、VDDIO2、VDDA和VBAT四组电源轨,在(图一)中可以看出,VDD和VDDA工作电压范围使用3.3V比较适合。VDDA为模拟电源轨,设计时建议串联一个100Ω/100M的磁珠做高频噪声隔离。 而VDDIO2和VBAT可以根据外围IO电平需求选择常规的1.8V、2.5V、3V、3.3V都可以。如果没有特别需求,可以全部3.3V供电,这样电源系统就比较简单,(图一)的PD项还详细的告诉了
[单片机]
keil51下使用sprintf问题
测试环境:keil c51 + STC89C52 说明: 1.keil的不定参数只有15个字节 也就是说sizeof(...) 加起来总共不能超过15字节,否则会出错 2.当不定参数中有常数时,你也会得不到你想要的结果,字符串除外 例: unsigned char count_sec=2, count_min=3, count_hour=4; xdata char buf = ; sprintf(buf, %2d:%2d:%2d , count_hour, count_min, count_sec); 则转换完的结果是不正确的。 解决方式1: unsigned char count_sec=2, count_min=3, cou
[单片机]
KEIL C51代码优化详细分析
阅读了《单片机与嵌入式系统应用》2005年第10期杂志《经验交流》栏目的一篇文章《Keil C51对同一端口的连续读取方法》(原文)后,笔者认为该文并未就此问题进行深入准确的分析 文章中提到的两种解决方法并不直接和简单。笔者认为这并非是Keil C51中不能处理对一个端口进行连续读写的问题,而是对Kei1 C51的使用不够熟悉和设计不够细致的问题,因此特撰写本文。 本文中对原文提到的问题,提出了三种不同于原文的解决方法。每种方法都比原文中提到的方法更直接和简单,设计也更规范。(无意批评,请原文作者见谅) 1 问题回顾和分析 原文中提到:在实际工作中遇到对同一端口反复连续读取,Keil C51编译并未达到预期
[单片机]
用Keil编译STM32工程出现下面错误
Keil提示:*.axf: Error: L6967E: Entry point (0x08000000) points to a Thumb instruction but is not a valid Thumb code pointer. 解决办法: 1、菜单 options for target- linker- misc controls加入 --entry Reset_Handler --first __Vectors 2、options for target- asm- Include Paths 然后倒入startup_stm32f10x_hd.s或者startup_stm32f10x_md.s(说明:不同的
[单片机]