0

回答

     stm32f407 CAN 配制问题  把pd0  pd1  配制成CAN 怎么都没有数据输出。   GPIO_InitTypeDef GPIO_InitStructure;    CAN_InitTypeDef        CAN_InitStructure;  CAN_FilterInitTypeDef  CAN_FilterInitStructure;#if CAN1_RX0_INT_ENABLE     NVIC_InitTypeDef  NVIC_InitStructure;#endif    //使能相关时钟   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD ENABLE);//使能PORTA时钟        RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1 ENABLE);//使能CAN1时钟     //初始化GPIO   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0| GPIO_Pin_1;    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用功能    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉    GPIO_Init(GPIOD &GPIO_InitStructure);//初始化PA11PA12   //引脚复用映射配置   GPIO_PinAFConfig(GPIODGPIO_PinSource0GPIO_AF_CAN1); //GPIOA11复用为CAN1   GPIO_PinAFConfig(GPIODGPIO_PinSource1GPIO_AF_CAN1); //GPIOA12复用为CAN1​

imtzhangge 17:47 阅读:11

3

回答

stm32 按键怎么做 长按和短按的程序。

imtzhangge 2020-02-27 阅读:79

0

回答

stm32f407 用CUBEMX  USART   发送数据没有发送出去。   .  /@@* Infinite loop */  /@@* USER CODE BEGIN WHILE */  while (1)  {    /@@* USER CODE END WHILE */    HAL_UART_Transmit(&huart1"hello world" 121000);              /@@* USER CODE BEGIN 3 */  }​/@@* USART1 init function */void MX_USART1_UART_Init(void){  huart1.Instance = USART1;  huart1.Init.BaudRate = 115200;  huart1.Init.WordLength = UART_WORDLENGTH_8B;  huart1.Init.StopBits = UART_STOPBITS_1;  huart1.Init.Parity = UART_PARITY_NONE;  huart1.Init.Mode = UART_MODE_TX_RX;  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;  huart1.Init.OverSampling = UART_OVERSAMPLING_16;  if (HAL_UART_Init(&huart1) != HAL_OK)  {    Error_Handler();  }}void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle){  GPIO_InitTypeDef GPIO_InitStruct = {0};  if(uartHandle->Instance==USART1)  {  /@@* USER CODE BEGIN USART1_MspInit 0 */  /@@* USER CODE END USART1_MspInit 0 */    /@@* USART1 clock enable */    __HAL_RCC_USART1_CLK_ENABLE();      __HAL_RCC_GPIOA_CLK_ENABLE();    /@@**USART1 GPIO Configuration        PA9     ------> USART1_TX    PA10     ------> USART1_RX     */    GPIO_InitStruct.Pin = GPIO_PIN_9;    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;    GPIO_InitStruct.Pull = GPIO_PULLUP;    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;    GPIO_InitStruct.Alternate = GPIO_AF7_USART1;    HAL_GPIO_Init(GPIOA &GPIO_InitStruct);    GPIO_InitStruct.Pin = GPIO_PIN_10;    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;    GPIO_InitStruct.Pull = GPIO_PULLUP;    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;    GPIO_InitStruct.Alternate = GPIO_AF7_USART1;    HAL_GPIO_Init(GPIOA &GPIO_InitStruct);    /@@* USART1 interrupt Init */    HAL_NVIC_SetPriority(USART1_IRQn 1 0);    HAL_NVIC_EnableIRQ(USART1_IRQn);  /@@* USER CODE BEGIN USART1_MspInit 1 */  /@@* USER CODE END USART1_MspInit 1 */  }}​

imtzhangge 2020-02-27 阅读:31

4

回答

STM32定时时间每进一次中断都会长一些

lv1siy773 2020-02-26 阅读:21

1

回答

STM32怎么实现按下按键后延时复位

IoTCatcher 2020-02-26 阅读:17

0

回答

最近在用FreeRTOS搞多任务uart发送我发现有个问题 比如task A{        for(i=0;i<3;i++)os_uart_send(i);}os_uart_send是把参数作为消息邮箱要发送的值发送给 task B然后task B就是调用uart把消息邮箱的值进行发送结果只发送了2 即只task B只执行了一次为什么不是发送0 1 2按道理来说应该是task A发送了3次消息邮箱激活task B 3次 那么​每次激活应该立马打断task A 执行task B的内容内核是配置了抢占的 B的优先级也比A的高 结果还是要task A执行完 才执行一次task B

_落雪千寒灬 2020-02-26 阅读:30

3

回答

STM32扩展type-c接口怎么接呢

lv1siy773 2020-02-25 阅读:34

3

回答

STM32的SLEEP模式下,程序还会运行吗

Aaronlee 2020-02-25 阅读:22

3

回答

是参考官方的demo设计的,但是按下复位按键后还是不能复位

danielhuang 2020-02-25 阅读:28

1

回答

ST官方的LL库怎么设置IIC寄存器的地址

eric1993 2020-02-25 阅读:24

4

回答

怎么实现掉电前保存这个I2C的数据

少年一人城 2020-02-25 阅读:28

4

回答

可以用什么办法实现快速读取内部flash数据

pengTOM 2020-02-25 阅读:26

4

回答

STM单片机为什么要设计上内部的时钟

youand_me 2020-02-25 阅读:33

1

回答

  stm32 f407  cubemx  怎么配制 CAN 过滤器配制、

imtzhangge 2020-02-25 阅读:22

3

回答

jlink下载时,提示找不到dll文件

呵国家啊 2020-02-25 阅读:28

2

回答

MDK的编译生成的ELF文件是做什么用途的

buffered 2020-02-25 阅读:24

1

回答

stm32f767 USB  hid cubema 怎么配制   配制一直无法识别USB HID。   

imtzhangge 2020-02-25 阅读:22

3

回答

STM32每次采样的值都会减小一些

rdim 2020-02-25 阅读:31

2

回答

先上代码:UINT8 znFAT_Enter_Dir2(INT8 *dirpathUINT32 *pClusterUINT32 *pos) { UINT8 index=0res=0; UINT32 i=1;// #ifndef USE_LFN INT8 dirname[13];// #else// INT8 dirname[MAX_LFN_LEN+1];// #endif *pos=1; *pCluster=2;printf("000\r\n"); if(('\\'==dirpath[0] || '/'==dirpath[0]) && '\0'==dirpath[1]) //Èç¹ûÊÇ"\\"£¬ÔòÖ±½ÓÈ¡Ê×Ŀ¼´Ø£¬¼´µÚ2´Ø { printf("222\r\n");  return ERR_SUCC; } ////////////////////////////// printf("111\r\n"); while('\0'!=dirpath[i]) {  if('\\'==dirpath[i] || '/'==dirpath[i])  {   dirname[index]='\0';   index=0;      res=Get_Dir_Start_Cluster(dirnamepCluster);   if(res)    {  printf("333\r\n");return res;  //·µ»Ø´íÎóÂë     }   *pos=i+1;  }   else  {   dirname[index]=dirpath[i];   index++;   #ifndef USE_LFN   if(index>12) //Èç¹û²»Ê¹Óó¤Ãû£¬ÔòĿ¼ÃûÒÔ¼°ÎļþÃû×²»Äܳ¬¹ý8+1+3   {printf("444\r\n");return ERR_SFN_ILL_LEN; //Ŀ¼Ãû³¤ÓÚ8.3£¬Òà·ÀÖ¹dirnameÒç³ö   }   #else   if(index>MAX_LFN_LEN) //Èç¹ûʹÓó¤Ãû£¬ÔòĿ¼ÃûÒÔ¼°ÎļþÃû×²»Äܳ¬¹ýÉ趨µÄ³¤Ãû×³¤¶È   { printf("555\r\n");return ERR_LFN_BUF_OUT; //Ŀ¼Ãû³¤ÓÚMAX_LFN_LEN£¬Òà·ÀÖ¹dirnameÒç³ö   }      #endif  }  i++; } printf("666\r\n");   return ERR_SUCC; //³É¹¦}int main(void){  UINT32 res=0len=0;UINT32 ijnxy;UINT8 temp;UINT32 ncluster=0; //Ö¸¶¨Ä¿Â¼ÎªÊ×Ŀ¼UINT32 *p;delay_init();uart_init(115200); //´®¿Ú³õʼ»¯Îª115200printf("´®¿ÚÉèÖÃÍê±Ï\r\n");znFAT_Device_Init(); //´æ´¢É豸³õʼ»¯  printf("SD¿¨³õʼ»¯Íê±Ï\r\n");TFT_init2();TFT_clear(0x001f);TFT_GPIO_DeInit();znFAT_Select_Device(0&Init_Args); //Ñ¡ÔñÉ豸TFT_init1();TFT_clear(0x0000);res=znFAT_Init(); //Îļþϵͳ³õʼ»¯   if(!res) //Îļþϵͳ³õʼ»¯³É¹¦ {printf("Suc. to init FS\r\n");printf("BPB_Sector_No: %d"Init_Args.BPB_Sector_No);   printf("Total_SizeKB: %d"Init_Args.Total_SizeKB); printf("BytesPerSector: %d"Init_Args.BytesPerSector); printf("FATsectors: %d"Init_Args.FATsectors);  printf("SectorsPerClust: %d"Init_Args.SectorsPerClust); printf("FirstFATSector: %d"Init_Args.FirstFATSector); printf("FirstDirSector: %d"Init_Args.FirstDirSector); printf("FSsec: %d"Init_Args.FSINFO_Sec);printf("Next_Free_Cluster: %d"Init_Args.Next_Free_Cluster);printf("FreenCluster: %d\n"Init_Args.Free_nCluster);  } else //Îļþϵͳ³õʼ»¯Ê§°Ü {printf("Fail to init FS Err Code: %d"res); } printf("AAA\r\n"); //if(!znFAT_Enter_Dir("\\ABC\\A\\B\\C\\D\\E\\F\\G\\H\\I\\J\\"&nclusterp)) if(!znFAT_Enter_Dir2("\\ABC\\"&nclusterp)) { printf("start cluster is %d\n"ncluster); } else { printf("fail.\n"); } printf("BBB\r\n");return 0; //while(1);     }   定义了一个函数:UINT8 znFAT_Enter_Dir2(INT8 *dirpathUINT32 *pClusterUINT32 *pos) 功能是进入一个目录,获取目录的开始簇。程序下载进去,用串口助手查看,如下:只打印到AAA就停止了。我在znFAT_Enter_Dir2这个函数内部也设置了好多打印语句,可是一句也没打印出来。貌似进入该函数以后,出不来了,而且好像什么也没执行。我感到很奇怪,百思不得其解。还有一个问题,UINT8UINT32明明定义了,可是双击找定义的地方,提示:​求高手解惑,谢谢!​

蓝蓝的天 2020-02-24 阅读:31

6

回答

STM32长按检测识别不到,直接把长按识别成短按,遇到这种情况怎么解决

冰冰杨 2020-02-24 阅读:32
  • 帮助人数
  • 0
  • 获得赞数
  • 0
  • 一周积分
  • 0

每日任务

提问一次
30IC币
回答一次
30IC币

问题达人换一批

本月问答IC币兑换

排名
用户名
问答积分
可兑换IC币
1
1426
40000
2
1310
40000
3
1272
40000
4
1270
40000
5
1262
40000
6
1260
40000
7
1256
40000
8
1094
30000
9
1076
30000
10
1052
30000
11
952
25000
12
934
20000
13
934
20000
14
772
20000
15
770
20000
16
666
15000
17
404
10000
18
288
6000
19
276
6000
20
260
6000
21
182
4000
22
164
4000
23
122
4000
24
120
4000
25
120
4000
26
118
4000
27
116
4000
28
116
4000
29
116
4000
30
114
4000
< 123 >