完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32如何从串口接收数据,取出数据中的密码段再保存到flash中
STM32如何从串口接收数据,取出数据中的密码段再保存到flash中 u8 Usart2_buf[256]; unsigned int usart2_lent; void main(void) { char buf_password[19] = "000000";//6位密码 memset((char *) &buf_password, 0, sizeof(buf_password)); strncpy(buf_password, Usart2_buf + 9, 6);//从外键获取的信息保存到Usart2_buf中,其中从第10-15位保存的是密码 if(save_password()==1) { soundBee(1); } else { soundBee(0); } } //单独存储密码 int save_password() { char in_data[7]=""; sprintf(in_data, "%s",buf_password); if(strlen(in_data)==18) { write_flash(0x0800F800, (u16 *) in_data, 7); ACCLOG("write password successn"); return 1; } else { ACCLOG("write password fail...n"); return 0; } } //把密码保存到flash int write_flash(u32 StartAddr,u16 *buf,u16 len) { volatile FLASH_Status FLASHStatus; u32 FlashAddr; len=(len+1)/2; FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPERR); FlashAddr=StartAddr; FLASH_ErasePage(StartAddr); while(len--) { FLASHStatus = FLASH_ProgramHalfWord(FlashAddr,*buf++); if (FLASHStatus != FLASH_COMPLETE) { //printf("FLSH :Error %08Xnr",FLASHStatus); return -1; } FlashAddr += 2; } FLASH_Lock(); return 0; } //串口2终中断(串口2接收到数据先给GetData1,再存入Usart2_buf) void USART2_IRQHandler(void) { u8 GetData1; if(USART_GetITStatus(USART2, USART_IT_RXNE)!=RESET) { USART_ClearITPendingBit(USART2,USART_IT_RXNE); GetData1=(u8)USART_ReceiveData(USART2)&0xff; if(usart2_read_en==0&&usart2_lent<256) { Usart2_buf[usart2_lent]=GetData1; usart2_lent++; } } if(USART_GetFlagStatus(USART2,USART_FLAG_ORE)==SET) { USART_ClearFlag(USART2,USART_FLAG_ORE); USART_ReceiveData(USART2); } } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1632 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1559 浏览 1 评论
985 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
688 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1605 浏览 2 评论
1869浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
653浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
523浏览 3评论
540浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
510浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 16:11 , Processed in 0.984657 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号