你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

st-img
chrome
st-img
firefox
st-img
safari
st-img
ie8及以上
shequ.stmicroelectronics.cn
  • ST意法半导体官网
  • STM32中文官网
  • ST全球论坛
登录/注册
  • 首页
  • 技术问答
  • 话题
  • 资源
  • 创客秀
  • 视频
  • 标签
  • 积分商城
  • 每日签到
kofjlu

kofjlu

 

回答数 0 关注数 0
关注 私信
  • 动态99
  • 提问
  • 回答0
  • 创客秀 0
  • 分享 0
  • 关注0
7 回答

STM32H743IIC,HAL库驱动硬件I2C,hi2c2.state一直是busy. 为什么?

STM32H7
q289466080 q289466080 回答时间: 2024-11-13 10:29

I2C只能发送一次后一直busy问题解决了吗? 我也是相同问题

赞0
1 回答

STM32H743 NAND HAL_NAND_Read_Status()一直返回0XFF?

STM32H7
kofjlu kofjlu 回答时间: 2024-1-10 17:33

这是我的测试代码: void NAND_Erase_Chip(void) { HAL_StatusTypeDef err_code = HAL_OK; NAND_AddressTypeDef addr = {0}; for(uint16_t i = 0; i < nand_dev.block_totalnum; i++) { addr.Block = i; printf("Erase block %d\r\n", i); err_code = HAL_NAND_Erase_Block(&hnand1, &addr); if(err_code) { printf("Erase %d block fail!! Error code is %d\r\n", i, err_code); } } } uint8_t Test_Read_Page(uint16_t block_num, uint16_t page_num) { static uint8_t first_time_exe = 0; uint8_t *pbuf; uint8_t sta = 0; uint16_t i = 0; NAND_AddressTypeDef addr = {0}; addr.Block = block_num; addr.Page = page_num; printf("\r\n ========Read block %d page %d ========\r\n", block_num, page_num); if(first_time_exe == 0) { // printf("Start to erase chip...\r\n"); // NAND_Erase_Chip(); // printf("Erase chip finished...\r\n"); printf("Start to erase block %d...\r\n", block_num); sta = HAL_NAND_Erase_Block(&hnand1, &addr); if(sta) { printf("Erase block failed...\r\n"); } else { printf("Erase block finished...\r\n"); } first_time_exe = 1; NAND_Delay(100); } pbuf = My_Malloc(SRAM1, hnand1.Config.PageSize); sta = HAL_NAND_Read_Page_8b(&hnand1, &addr, pbuf, 1); if(sta == HAL_OK) { printf("read block %d page %d data is: \r\n", addr.Block, addr.Page); for(i = 0; i < hnand1.Config.PageSize; i++) { printf("%x ", pbuf); } printf("\r\n"); } My_Free(SRAM1, pbuf); return sta; } uint8_t Test_Write_Page(uint16_t block_num, uint16_t page_num) { uint8_t *pbuf; uint8_t sta = 0; uint16_t i = 0; NAND_AddressTypeDef addr = {0}; pbuf = My_Malloc(SRAM1, hnand1.Config.PageSize); addr.Block = block_num; addr.Page = page_num; for(i = 0; i < hnand1.Config.PageSize; i++) { pbuf = i; } printf("Start to write page...\r\n"); sta = HAL_NAND_Write_Page_8b(&hnand1, &addr, pbuf, 1); printf("Write page finished. Error code is %d\r\n", sta); My_Free(SRAM1, pbuf); return sta; } void Test_Nand(void) { NAND_IDTypeDef pNAND_ID; HAL_NAND_Reset(&hnand1); HAL_NAND_Read_ID(&hnand1, &pNAND_ID); printf("NAND ID is: 0x%x-%x-%x-%x\r\n", pNAND_ID.Maker_Id, pNAND_ID.Device_Id, pNAND_ID.Third_Id, pNAND_ID.Fourth_Id); Test_Read_Page(10, 10); Test_Write_Page(10, 10); printf("Read data again...\r\n"); Test_Read_Page(9, 9); Test_Read_Page(10, 10); Test_Read_Page(11, 11); }

赞0
kofjlu kofjlu


阅读作者更多的帖子

所在话题

参与活动

  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16