- 博客(52)
- 收藏
- 关注
原创 12,SPI
判断一个设备是不是SPI通信,看是否有这几个线:SCK,CS,MISO,MOSI。W25Q64储存空间:8M字节=128块=2048扇区。一块=16扇区,4096*16字节 一块=64KB。Flash芯片:W25Q64,可以看成一个储存器。W25Q64芯片和单片机之间的通信方式是SPI。M主机,I输入,S从机,O输出。MISO(SDI):主机输入,从机输出。MOSI(SDO):主机输出,从机输入。SPI:串行同步全双工,主从通信。一扇区=16页 4096字节。SCK(SCL):同步时钟。
2024-06-27 20:32:45 178
原创 11.利用RTC制作实时时钟
定时器的配署:不可以直接访问,因为定时器相关的寄存器在备份区域。RTC 从配置上分两大部分—时钟的配置、定时器的配置。4、需要开中断就开(秒中断问钟中断).不需要就不开。a)开电源控制器以及备份区的时钟。b)电源PWR CR的DBP置1。直接由RCC的BDCR来配置时钟:时钟源的选择。1、使能备份区域访问— PWREN、BKPEN。3、设置计数器计数值(设置当前时间、更新时间〉2、选定时钟源配置分频〔实现1HZ时钟频率)时钟的配置:可以直接访问。
2024-06-24 21:21:25 315
原创 10,PWM
想改变周期和频率:需要调节定时器的时钟源和重装栽植。想改变占空比:调节定时器的比较值。计数器:根据时钟频率计数。时钟源:为计数器提供时钟。重装栽植:计数的最大值。
2024-06-24 17:07:13 120
原创 9,DMA可以获取光照烟雾值
DMA概述:直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。两个DMA 控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。ADC多通道问题需要用到DMA,与ADC相比,省去了获取AD转换数值(转换后数据存储在数据寄存器中,需要把数据拿出来)的步骤。每个外设与DMA之间的关系都是定好的,DMA:数据传输高速通道。
2024-06-23 14:58:28 203
原创 8,ADC在本项目中获取烟雾和光照值
ADC的处理数据流程︰数据从输入通道(in0-in15、in16、in17)进来.进入到规则通道排序.模数转换器开始转换数据.数据转换之后来到数据寄存器。使用场景:遇到ADC类型的传感器(输入模拟量的传感器),采集数据需要使用ADC将模拟量转化为数字量。数字量传感器:输出的数据是一个数字,特定的通信接口(usart spi iic..)模拟量传感器:输出的数据是一个连续的电压变化,统一的通信接口 (adc)单次:模数转换器把规则通道的第一个通道转换一次。连续:模数转换器一直澈换规则通道的第一个通道。
2024-06-21 17:00:20 256
原创 7,KQM模块的驱动
1,查资料,查模块的通信接口(单片机和模块之间采用什么方式通信)硬件接口,驱动方式(串口驱动用串口发送接收PC10,PC11)传输数据,本项目中不要用串口3,串口3是留给wifi的,在硬件上已经固定了, 所以其他的任选一个用串口4传输数据,只用了三个脚:VCC GND TX,
2024-06-20 17:06:22 287
原创 6,串口编程———通过串口助手发送数据,控制led亮灭
/功能:串口助手每次发送数据格式:@0000&// 第二个字节控制LED1亮灭// 第三个字节控制LED2亮灭// 第四个字节控制LED3亮灭// 第无个字节控制LED4亮灭//要求:代码能够一直运行,能够接收多字节数据上节讲了串口的基本发送接收数据,本节应用一下。因为功能要求代码能够一直运行,所以一般会想到把上面这个功能函数写在while(1)循环里,但是。
2024-06-02 21:43:19 1026
原创 5,串口编程---实现简单的用串口发送接收数据
1,等待发送寄存器为空,也就是等待上一次数据发送完毕,所以需要一个能够获取串口的寄存器状态的函数,查看串口相关的库函数找到USART_GetFlagStatus (检查指定的 USART 标志位设置与否),等待发送寄存器为空:由下图知,当TXE等于1,即==SET,数据已经被转移到移位寄存器,表示数据已经发送完毕,本开发板STM32F103ZET6有5个串口,用串口1作调试串口,因为串口通信和一键下载电路连接到了串口1上面,所i用串口1做调试串口。2,写串口发送和接收函数。2,写串口发送和接收函数。
2024-05-28 21:42:22 778
原创 3,外部中断(EXTI)的配置过程
1,开时钟,PA的时钟,AFIO时钟2,确定EXTI0中断线的输入源为PA03,触发方式的选择4,配置中断屏蔽寄存器5,通过NVIC来进行中断的优先级配置,并开启中断通道6,编写中断服务函数准备工作:,查看手册:芯片相关资料/参考手册--中文9.2.2外部中断之前配置GPIO(IO配置)这次配置EXTI(外设配置)(包括配置时钟+外设自身两部分)
2024-05-20 22:15:30 348
原创 2,利用库函数实现按键控制灯的亮灭
找到RCC库函数,需要使能APB2外设时钟,用到函数RCC_APB2PeriphClockCmd。1,查看数据手册:芯片相关资料/STM32固件库使用手册的中文翻译版。GPIO_Init()的第二个参数是指向结构体的指针,3,应用函数 ,通过控制端口的电平状态控制灯的亮灭。下滑找到该函数的参数返回值等相关信息。2,配置GPIO,查找GPIO库函数。
2024-05-19 22:19:24 240
原创 1,用寄存器操作闪烁led灯
端口PE2配置位(y = 2),对应看8-11位,根据模式配置为(0011)端口0-7在低位CRL,端口8-15在高位CRH,提供时钟:RCC APB2 外设时钟使能寄存器。控制接口PE的为第6位,开时钟,将第6位置为1。根据原理图看出led1灯为IO引脚为PE2。端口PE2输出数据(y = 2),综上所述:led.c中代码。
2024-05-19 17:44:27 467
原创 38,最高的分数
蒜头君老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮蒜头君老师解决这个问题吗?输入格式输入两行,第一行为整数 n(1≤n<100),表示参加这次考试的人数。第二行是这 n 个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为 0 到100 之间的整数。输出格式输出一个整数,即最高的成绩。输出时每行末尾的多余空格,不影响答案正确性样例输入585 78 90 99 6..
2022-04-05 20:39:33 259
原创 37,求整数的和与均值
蒜头君有 n(1≤n≤10000) 个整数,请求出它们的和与均值。输入格式输入第一行是一个整数 n,表示有 n 个整数。第2~n+1 行每行包含1个整数。每个整数的绝对值均不超过10000。输出格式输出一行,先输出和,再输出平均值(保留到小数点后 5 位),两个数间用单个空格分隔。输出时每行末尾的多余空格,不影响答案正确性样例输入4344222343222样例输出1131 282.75000#include<stdi...
2022-04-05 20:32:29 579 1
原创 36, 均值
蒜术师给了你一组样本数据,请帮助他计算这组数据的均值。输入格式输入有两行,第一行包含一个整数 n(1≤n<100),代表样本容量;第二行包含 n 个绝对值不超过1000 的浮点数,代表各个样本数据。输出格式输出一行,包含一个浮点数,表示均值,精确到小数点后 44 位。输出时每行末尾的多余空格,不影响答案正确性样例输入21.0 3.0样例输出2.0000参考结果:#include<stdio.h>int main()...
2022-04-05 20:04:46 297
原创 35,财务管理
蒜头君今年毕业并找到了一份工作。他赚很多钱,但似乎总是不够。蒜头君认为他需要控制他的投资以解决自己的财务问题。蒜头君拿到了自己的银行账户详单,想看看自己有多少钱。请帮助蒜头君写一个程序,通过过去12个月中每月的月末结余,计算平均结余。输入格式输入包含12行,每行包含一个浮点数,为某个月的结余。每个数都是不大于1,000,000的正数,保留两位小数。输出格式输出一个数,为这12 个月的平均月末结余,保留到小数点后第二位,并在最前面加一个'$'符。输出时每行末尾的多余...
2022-04-04 21:04:28 356 1
原创 34,求平均年龄
小蒜蒜的班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。输入格式第一行有一个整数 n(1≤n≤100),表示学生的人数。其后 n 行每行有 1 个整数,表示每个学生的年龄,取值为 15 到 25。输出格式输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。输出时每行末尾的多余空格,不影响答案正确性样例输入21817样例输出17.50参考结果:#include<stdio.h>..
2022-04-04 20:44:50 901
原创 33,苹果和虫子2
蒜头君买了一箱 n 个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每 x 小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过 y 小时你还有多少个完整的苹果?输入格式输入仅一行三个整数 n,x,y (1≤n,x,y≤1000)。输出格式输出也仅一行,剩下的苹果个数。输出时每行末尾的多余空格,不影响答案正确性样例输入10 4 9样例输出7参考结果:#include<stdio.h>int main(){ ...
2022-04-04 20:12:20 469
原创 32,简单计算器
蒜术师有一个最简单的计算器,支持'+'、'-'、'*'、'/'四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过 \text{int}int 表示的范围。输入格式输入只有一行,共有三个参数,其中第 1、2个参数为整数,第 3 个参数为操作符('+'、'-'、'*'、'/'或其它符号)。输出格式输出只有一行,一个整数,为运算结果。然而:如果出现除数为0的情况,则输出:"Divided by zero!"; 如果出现无效的操作符(即不为'+'、'-'、'*'、'/...
2022-04-02 15:31:15 333
原创 31,点和正方形的关系
有一个正方形,四个角的坐标(x,y)分别是(1,−1),(1,1),(−1,−1),(−1,1),x是横轴,y是纵轴。小蒜蒜想让你写一个程序,判断一个给定的点是否在这个正方形内(包括正方形边界)。输入格式输入一行,包括两个整数 x、y,以一个空格分开,表示坐标 (x,y) −10≤x,y≤10。输出格式输出一行,如果点在正方形内,则输出"yes",否则输出 "no"。输出时每行末尾的多余空格,不影响答案正确性样例输入1 1样例输出yes...
2022-04-02 15:00:23 711
原创 30,判断闰年
小蒜蒜想知道某年是否为闰年。公历纪年法中,能被 44 整除的大多是闰年,但能被 100 整除而不能被 400 整除的年份不是闰年,如 1900年是平年,2000年是闰年。输入格式输入只有一行,包含一个整数 a(0 < a < 3000)。输出格式一行,如果公元a年是闰年输出'Y',否则输出'N'。输出时每行末尾的多余空格,不影响答案正确性样例输入2006样例输出N#include<stdio.h>int main...
2022-03-29 20:09:23 385
原创 29,三角形判断
蒜头君给了你三个正整数,分别表示三条线段的长度,请判断这三条线段能否构成一个三角形。输入格式输入共一行,包含三个正整数 a,b,c (1≤a,b,c≤100),分别表示三条线段的长度,数与数之间以一个空格分开。输出格式如果能构成三角形,则输出"yes",否则输出"no"。输出时每行末尾的多余空格,不影响答案正确性样例输入3 4 5样例输出yes#include <stdio.h>int main(){ int a,b,c;..
2022-03-28 21:22:03 839
原创 L1-002 打印沙漏
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。输入格式:输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。输出格式:首先打印出由给定符号组..
2022-03-28 20:40:29 97
原创 28,最大数输出
蒜头君有三个整数,想让你帮他找到最大的数。输入格式输入为一行,包含三个整数a,b,c (−1000≤a,b,c≤1000),数与数之间以一个空格分开。输出格式输出一行,包含一个整数,即最大的整数。输出时每行末尾的多余空格,不影响答案正确性样例输入10 20 56样例输出56参考结果:#include<stdio.h>int main(){ int a,b,c; scanf("%d%d%d",&a,&b,&a..
2022-03-27 17:28:32 674
原创 L1-001 Hello World
这道超级简单的题目没有任何输入。你只需要在一行中输出著名短句“Hello World!”就可以了。输入样例:无输出样例:Hello World!参考结果:#include<stdio.h>int main(){ printf("Hello World!"); return 0;}...
2022-03-27 16:56:56 503
原创 27,计算邮资
根据邮件的重量和蒜头君是否选择加急计算邮费。计算规则:重量在 1000 克以内(包括1000 克),基本费 8 元。超过 1000 克的部分,每 500 克加收超重费 4 元,不足 500克部分按 500 克计算;如果蒜头君选择加急,多收 5 元。输入格式输入一行,包含一个正整数和一个字符,以一个空格分开,分别表示重量(单位为克,不超过 2⋅10^5)和是否加急。如果字符是'y',说明选择加急;如果字符是'n',说明不加急。输出格式输出一行,包含一个整数,表示邮费。...
2022-03-27 16:30:09 1093 2
原创 26,蒜头君上班
蒜头君可以选择行走和骑车两种方式上班。但实际上,他并不清楚哪种方式更快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为 27 秒;停车锁车的时间为 23 秒;步行每秒行走 1.2 米,骑车每秒行走 3.0 米。给了蒜头君距离公司的距离,请问是骑车快还是走路快。输入格式输入一行,包含一个整数,表示与公司的距离,单位为米。输出格式输出一行,如果骑车快,输出一行"Bike"; 如果走路快,输出一行"Walk"; 如果一样快,输出一行"A..
2022-03-25 20:33:52 237
原创 25,小蒜蒜的成绩
小蒜蒜告诉了你她的语文和数学成绩,判断是否恰好有一门课不及格(成绩小于 60 分)。输入格式一行,包含两个在 0 到 100 之间的整数,分别是该生的语文成绩和数学成绩。输出格式若该生恰好有一门课不及格,输出 1;否则输出 0。输出时每行末尾的多余空格,不影响答案正确性样例输入50 80样例输出1参考结果:#include<stdio.h>int main(){ int a,b; scanf("%d%d",&...
2022-03-25 20:06:16 416
原创 24,判断一个数能否同时被3和5整除
蒜头君想让你帮忙判断一个数n能否同时被3和5整除。输入格式输入一行,包含一个整数n。(−1,000,000<n<1,000,000)输出格式输出一行,如果能同时被3和5整除输出"YES",否则输出"NO"。输出时每行末尾的多余空格,不影响答案正确性样例输入15样例输出YES参考结果:#include <stdio.h>int main(){ int a; scanf("%d",&...
2022-03-24 20:45:56 1436
原创 23,奇偶ASCII值判断
小蒜蒜还想让你判断 ASCII 值的奇偶性:任意输入一个字符,判断其 ASCII 值是否是奇数,若是,输出"YES",否则,输出"NO"。例如,字符'A'的 ASCII 值是 65,则输出"YES",字符'B'的 ASCII 值是 66,则输出"NO"。输入格式输入一个字符。输出格式如果其 ASCII 值为奇数,则输出"YES";否则,输出"NO"。输出时每行末尾的多余空格,不影响答案正确性样例输入A样例输出YES参考结果: ...
2022-03-24 20:03:33 1016
原创 22,苹果和虫子
蒜头君买了一箱 n 个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每 x 小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过 y 小时蒜头君还有多少个完整的苹果?输入格式输入仅一行,包括三个不超过 10^5 的非负整数 n,x 和 y,数据保证y≤n*x。输出格式输出也仅一行,剩下的苹果个数。提示注意:是要求完整的苹果数。输出时每行末尾的多余空格,不影响答案正确性样例输入10 4 9样例输出7参考结果:#...
2022-03-22 19:59:55 446
原创 21,大象喝水
上课的时候老师问了小蒜蒜和同学们一个问题:一只大象口渴了,要喝 20 升水才能解渴,但现在只有一个深 h 厘米,底面半径为 r 厘米的小圆桶(h 和 r 都是整数)。问大象至少要喝多少桶水才会解渴。小蒜蒜想让你来算一下。输入格式输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深 h (1≤h≤100) 和底面半径 r (1≤r≤100),单位都是厘米。输出格式输出一行,包含一个整数,表示大象至少要喝水的桶数。提示如果一个圆桶的深为h厘米,底面半径为r厘...
2022-03-21 19:52:52 287
原创 20,计算球的体积
球是一种很常见的模型,小蒜蒜学习了它的体积计算公式:对于半径为 r 的球,其体积的计算公式为 V=4/3×π×r3,这里取π=3.14。现给定 r,求 V。输入格式输入为一个不超过 100 的非负实数,即球半径。输出格式输出一个实数,即球的体积,保留到小数点后 2 位。输出时每行末尾的多余空格,不影响答案正确性样例输入4样例输出267.95参考结果:#include<stdio.h>int main(){ d..
2022-03-20 15:54:30 1426
原创 19,计算浮点数相除的余数
蒜术师又准备了一道有趣的题目给你~相信你可以巧妙的解决它。计算两个浮点数 a和 b 的相除的余数,aa和 b 都是正数的。这里余数(r)的定义是: a=k×b+r,其中 k是整数,0≤r<b。输入格式输入仅一行,包括两个浮点数 a 和 b。0<a,b≤10000输出格式输出也仅一行,a÷b 的余数,四舍五入保留 6 位小数。输出时每行末尾的多余空格,不影响答案正确性样例输入73.263 0.9973样例输出0.460100参考结...
2022-03-19 20:29:32 506 1
原创 18,与圆相关的计算
小蒜蒜学习了与圆相关的知识,那么当然要学以致用啦。给出圆的半径,求圆的直径、周长和面积。如果圆的半径是 r,那么圆的直径、周长、面积分别是2×r、2×π×r、π×r×r,其中约定 π=3.14159。输入格式输入包含一个实数r(0<r≤10,000),表示圆的半径。输出格式输出一行,包含三个数,分别表示圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留 4 位小数。输出时每行末尾的多余空格,不影响答案正确性样例输入3.0样例输出6.00..
2022-03-19 20:13:04 980
原创 17,温度表达转化
小蒜蒜最近学习了摄氏温度和华氏温度的转化。利用公式 C=5×(F−32)/9 (其中 C 表示摄氏温度,F表示华氏温度)进行计算转化。她希望你编写一个程序快速的完成转化。输入格式输入一行,包含一个实数 FF,表示华氏温度。(459.67≤F≤10000)输出格式输出一行,包含一个实数,表示对应的摄氏温度,要求精确到小数点后 55位。输出时每行末尾的多余空格,不影响答案正确性样例输入41样例输出5.00000参考答案:#include&..
2022-03-17 20:31:39 355
原创 16,甲流疫情死亡率
蒜头君最近研究甲流,发现:甲流并不可怕,在中国,它的死亡率并不是很高。请根据截止 2009 年 12 月 22 日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。输入格式输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数,都在 [1,20000][1,20000] 范围内。输出格式输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后 33 位。输出时每行末尾的多余空格,不影响答案正确性样例输入10433 60样例输出0.575%参考结果:..
2022-03-16 19:37:15 2028
原创 15,计算分数的浮点数值
两个整数 a 和 b 分别作为分子和分母,既分数 a/b ,求它的浮点数值(保留小数点后 9 位)输入格式输入仅一行,包括两个整数 a 和 b(1≤a,b,≤1000)。输出格式输出也仅一行,分数 \frac{a}{b}ba 的浮点数值(保留小数点后 99 位)输出时每行末尾的多余空格,不影响答案正确性样例输入5 7样例输出0.714285714参考结果:#include<stdio.h>int main(){...
2022-03-15 20:49:13 525
原创 14,带余除法
今天蒜术师准备了一道带余数除法的题目,希望你能加深对它的理解并且通过这道题。给定被除数和除数,求整数商及余数。此题中请使用默认的整除和取余运算,无需对结果进行任何特殊处理。看看程序运行结果与数学上的定义有什么不同?输入格式一行,包含两个整数,依次为被除数和除数(除数非零),均在 [-10^6,10^6]范围内,中间用一个空格隔开。输出格式一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。输出时每行末尾的多余空格,不影响答案正确性样例输入10 ...
2022-03-15 20:10:58 216
原创 13,计算(a+b)/c的值 (补3月13未做题)
蒜术师又为你准备了一个式子,快来看看整除是怎样的吧。给定 3 个整数 a,b,c,计算表达式(a+b)/c 的值,/ 是整除运算。输入格式输入仅一行,包括三个整数 a,b,c, 数与数之间以一个空格分开。(−10,000≤a,b,c≤10,000,c/=0)输出格式输出一行,即表达式的值。输出时每行末尾的多余空格,不影响答案正确性样例输入1 1 3样例输出0参考结果;#include<stdio.h>int main(...
2022-03-14 20:56:39 235
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人