纵观全论坛没有此例程,特此奉上,仅供参考,第一次发帖,就不上传图了,
单片机源程序如下:
- /************************************************************************************
- #include "stm32f10x.h"
- #include "delay.h"
- #include "HX711.h"
- #include "usart.h"
- #include "key.h"
- #include "flash_S.h"
- int main(void)
- {
- u8 i,t;
- u8 len;
- u16 times=0;
- delay_init();
-
- NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
- uart_init(9600); //串口初始化为9600
- KEY_Init();
-
- FLASH_Configuration(1);
- printf("\r\n****V0.3****\r\n");//插入换行
- while(1)
- {
-
- t=KEY_Scan(0); //得到键值
- if(t)
- {
- switch(t)
- {
- case 1: //控制蜂鸣器4
- printf("1\r\n");
- break;
- case 2: //控制LED0翻转3
- printf("读取中。。。。。");
- FLASH_ReadMoreCHAR(0x0100, FLASH_RDBUFF, 6); //读取指定页面0x0800F800的数据//这里的数据长度是指的int的长度
- printf("%s\r\n",FLASH_RDBUFF);
- printf("读取成功。。。。。");
-
- break;
- case 3: //控制LED1翻转 2
- printf("写入中。。。。。");
- FLASH_WriteMoreCHAR(0x0100, "xiaohe", 6);
- printf("写入成功。。。。。");
-
- break;
-
- }
- }
-
- if(USART_RX_STA&0x8000)
- {
- len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
- printf("\r\n您发送的消息为:\r\n\r\n");
- for(i=0;i<len;i++)
- {
- USART_SendData(USART1, USART_RX_BUF[i]);//向串口1发送数据
- while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
- }
- printf("\r\n\r\n");//插入换行
- USART_RX_STA=0;
- }
- else
- {
- times++;
- if(times%5000==0)
- {
- printf("\r\n我测还活着\r\n");
-
- }
- // if(times%200==0)printf("请输入数据,以回车键结束\n");
- delay_ms(10);
- }
- }
- }
复制代码
所有资料51hei提供下载:
2.串口内部flash.7z
(189 KB, 下载次数: 341)
|