函数指针——USMART

在使用usmart调用读写flash函数之前,你需要确保已经正确初始化了Flash,并且已经使能了Flash读写操作。在此之后,你可以编写读写Flash的函数,并在usmart注册该函数,以便通过串口或其他方式调用。 以下是一个示例代码: ```c #include "stm32f10x.h" #include "usmart.h" #define FLASH_PAGESIZE 0x400 void Flash_Write(uint32_t addr, uint32_t data) { FLASH_Unlock(); // 解锁Flash // 擦除地址所在的整个扇区 FLASH_ErasePage(addr & (~(FLASH_PAGESIZE - 1))); // 写入数据 FLASH_ProgramWord(addr, data); FLASH_Lock(); // 锁定Flash } uint32_t Flash_Read(uint32_t addr) { return *(volatile uint32_t *)addr; } int main(void) { // 初始化Flash // 注册函数 usmart_cmd_register("flash_write", Flash_Write); usmart_cmd_register("flash_read", Flash_Read); while (1) { // 循环处理其他任务 } } ``` 在上面的代码中,我们定义了两个读写Flash的函数:`Flash_Write`和`Flash_Read`。这两个函数分别用于写入和读取Flash中的数据。在main函数中,我们先初始化了Flash,并使用`usmart_cmd_register`函数将读写Flash的函数注册到usmart中。这样,我们就可以通过串口或其他方式调用这两个函数了。 例如,如果我们想要在Flash中写入数据`0x12345678`,我们可以在终端中输入以下命令: ``` flash_write(0x08008000, 0x12345678) ``` 这样就可以将数据写入Flash了。类似地,如果我们想要读取Flash中的数据,我们可以在终端中输入以下命令: ``` flash_read(0x08008000) ``` 这样就可以读取Flash中的数据了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值