采用STM32F103C8T6单片机,KeilMDK5.32版本 串口异步通信,开启收发方向,DMA式收发数据(仿printf发送)。 发的DMA不在循环模式下(单次);接收的DMA在循环模式下。开启串口接收空闲中断 PC13控制LED灯,LED灯的亮灭指示接收到数据。 **在STM32CubeMX中需要同时开启DMA与串口全局中断**
2023-02-26 13:26:40 16.56MB stm32 arm 嵌入式硬件 单片机
1
大学C语言实训课,C语言学生成绩管理系统,供大家参考,具体内容如下 #include #include #include<math.h> struct student { int num; char name[20]; float pingshi; float shiyan; float kaoshi; double zongping; }stu[4]; void main() { void a(); void b(); void c(); void d(); void e(); int n; while(n!=6) {
2023-02-23 22:26:27 39KB c语言 printf 学生成绩管理系统
1
基于STM32F103C8T6在keil5上,实现将printf重定向到串口的3种方法。编译后连接USART1即可直接使用!
2023-02-17 15:55:52 495KB printf重定向到串口
1
程序内有详细的讲解文档,很好的学习资料,欢迎大家下载学习
2023-02-14 09:49:34 3.07MB STM32 UART串口2 Printf输出 scanf输入
1
官方printf函数一次只能定向一个串口,而通过自实现的printf可实现任意串口同时发送。 实用举例:myprintf(USART3, "num1 = %d\tnum2 = %f\r\n", num1,num2);
2023-01-03 14:49:50 1.24MB stm32 printf函数 USART
1
采用STM32F429IGT6单片机,KeilMDK5.32版本 使用SysTick系统滴答定时器进行延时 LED_R、LED_G、LED_B分别为PH10,PH11,PH12 Key1为PA0,Key2为PC13 KEIL5下载配置有FLASH与SRAM 用SPI5与Flash芯片通信(W25Q256JV),使用了DMA进行收发数据,SPI是同步通信,同时收发数据(其实仅与发TX同步,作为主器件,Tx产生波特率时钟SCK信号) 利用可变参数宏实现printf与scanf 定义了Flash输入输出结构体,利用了共用体 发送与接收缓冲区大小均为一个扇区大小4096B NSS(CS)采用软件控制,因为Flash芯片每发送玩一个指令都要把CS拉高。 注意点:因为TX产生SCK时钟,故需要TX的DMA优先级要比RX的优先级低,本次TX和RX的DMA使用的是一个DMA(DMA2),因为当收发一个数据后,TX和RX的DMA出现仲裁,TX需要发下一个数据,RX需要接收当前数据,为了防止一直发数据,故RX的DMA优先级需要比TX的高开启RX的DMA传输完成中断,在该中断中将CS拉高,结束通讯。
2022-12-23 09:59:58 616KB stm32 c语言
1
本文实例为大家分享了C语言实现俄罗斯方块的具体代码,供大家参考,具体内容如下 裸写的俄罗斯方块的代码,有意见或者想征用,直接评论留言即可。 效果如下: 代码: /***************************************************************/ /*俄罗斯方块的实现 * 基于VC 6.0 编译链接即可运行 * 已实现的功能: * 1、初步的规划及背景图案的显示 * 2、四种方块实现左右移动、下键加速、上键变形(两种变形)功能 * 3、下落方块碰壁及触碰到其它方块的检测 * 4、方块积满一行的消除并加分的功能 * 5、预测方块的功能 * 6、引入
2022-12-14 09:50:22 112KB c语言 printf 俄罗斯方块
1
int i,j,n,space; printf("请输入树的层数:"); scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=i+1;j++) { for(space=1;space<=n+1-j;space++) { printf(" "); }
2022-12-11 18:03:51 416B 圣诞树 源码
1
采用STM32F429IGT6单片机,KeilMDK5.32版本 使用SysTick系统滴答定时器进行延时 LED_R、LED_G、LED_B分别为PH10,PH11,PH12 Key1为PA0,Key2为PC13 KEIL5下载配置有FLASH与SRAM 收发共用一个缓冲区 I2C使用DMA与AT24C02通信,Tx中,利用DMA传输数据,但是起始位,设备地址,读写地址采用的是阻塞式发送,数据则是采用DMA传输;注意点:采用DMA发送应该等到BTF(发送寄存器空,移位寄存器也为空)事件后设置停止位,不可以在DMA传输完成中断中设置停止位,因为此时正在发送最后一个字节,故开启BTF中断(I2C_EV),在该中断服务函数中发送停止位并关闭I2C的DMA传输使能。 Rx中,利用DMA传输数据,但是起始位,设备地址,AT24C02写入地址采用的是阻塞式发送,数据则是采用DMA传输;注意点:在DMA传输完成中断中发送停止位,并关闭I2C的DMA传输使能,I2C主接收,写读转换中再次发送起始位前,第一次发送设备地址字节后,应检测BTF 仿printf写入发送缓冲区前,应检查上一次通信是否结束
2022-12-06 22:29:30 619KB stm32 c语言
1
这是本人大一第二学期初C语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中竟然在QQ网络硬盘中找到了当初的teta版,发布于此,以作纪念。 C 源代码如下: #include #include #include struct book{ char book_name[30]; int bianhao; double price; char author[20]; char state[20]; char name[20]; char sex[10]; int xuehao; struct
2022-12-06 15:31:22 89KB char c语言 printf
1