裴红恩

  • 2024-08-07
  • 回复了主题帖: lt3763电流无法提高

    qwqwqw2088 发表于 2024-8-7 08:52 多少A的电流 测一下PWM有没有 1.056A电流,PWM直接接入的intvcc,我打算重画了,感觉有点像输出端的限流电阻的原因我直接飞线电流降低了

  • 2024-08-06
  • 发表了主题帖: lt3763电流无法提高

    大家有没有遇到过lt3763驱动大功率led灯电流无法上来的问题

  • 回复了主题帖: LM2596和AMS1117电源转换芯片时没有输出

    你的1117 3V3电压为什么要接贴片电解电容的负极到地 

  • 2024-03-15
  • 回复了主题帖: 【国民技术车规MCU N32A455开发板】测评 - 4 - 中景园TFT_LCD移植+SPI2测试

    秦天qintian0303 发表于 2024-3-11 11:41 淘宝好好找,一定会发现好东西的   现在不中了,我之前买的那个屏幕现在要我运费了

  • 2024-03-11
  • 回复了主题帖: 【国民技术车规MCU N32A455开发板】测评 - 4 - 中景园TFT_LCD移植+SPI2测试

    秦天qintian0303 发表于 2024-3-8 14:56 我自己玩常用的是一个1.54寸,240*240的,支持SPI和8080通信的,10元左右 你这个怪便宜嘞

  • 回复了主题帖: 【国民技术车规MCU N32A455开发板】测评 - 4 - 中景园TFT_LCD移植+SPI2测试

    裴红恩 发表于 2024-3-8 11:35 这个屏幕是我找的彩屏中最便宜的 我买的时候12包邮1.8寸的

  • 2024-03-08
  • 回复了主题帖: 【国民技术车规MCU N32A455开发板】测评 - 4 - 中景园TFT_LCD移植+SPI2测试

    秦天qintian0303 发表于 2024-3-7 17:24 ST7735S在小屏应用中太广泛了,主要还是SPI的实现   这个屏幕是我找的彩屏中最便宜的

  • 2024-03-07
  • 回复了主题帖: 【国民技术车规MCU N32A455开发板】 spi2问题贴

    尹小舟 发表于 2024-3-7 09:32 问题已经找到了  是引脚映射问题,这里要改一下引脚映射 可以使用这个函数 GPIO_ConfigPinRe ... 我这边没有管脚复用,正常就运行成功了

  • 回复了主题帖: 【国民技术车规MCU N32A455开发板】测评 - 4 - 中景园TFT_LCD移植+SPI2测试

    lugl4313820 发表于 2024-3-7 06:54 拍照 时,背景也清理一下,这样的作品最后评分会很低。屏已经驱动了,能不能根据中景园的一些基本测试的例 ... 我这边找找这些例程  

  • 回复了主题帖: 【国民技术车规MCU N32A455开发板】测评 - 4 - 中景园TFT_LCD移植+SPI2测试

    lugl4313820 发表于 2024-3-7 06:51 建议增加移植的文字介绍,比如屏的时序、极性如何设置。还有拍图片时,最好与开发板一起拍,拍正面呀。你这 ... 好的好的

  • 2024-03-06
  • 发表了主题帖: 【国民技术车规MCU N32A455开发板】测评 - 4 - 中景园TFT_LCD移植+SPI2测试

    本帖最后由 裴红恩 于 2024-3-7 14:47 编辑 # 【国民技术车规MCU N32A455开发板】测评 - 4 - 中景园TFT_LCD移植+SPI2测试 之前就移植过中景园LCD的驱动到GD32系列的单片机上,这次在测试SPI接口的时候直接驱动一下LCD屏幕并且将过程完整的记录下来 ### STEP one: ST7735S是一块1.8英寸采用SPI通信的TFT全彩屏,分辨率是128*160,这里采用RGB565 16bit的色块编译模式(RGB565即高五位为Red,第五位为Blue,中间六位为Green,共16位)。 BLK:背光开光引脚 CS:片选信号 DC:数据模式选择信号 1为写命令/0为写数据 RST:复位信号 SDA:SPI数据线 SCL:SPI时钟线 VDD:兼容+5V和+3.3V GND:接地 简单介绍一下驱动的运行过程,首先是进行一次屏幕复位,清除所有的信号 根据数据手册我们可以知道复位时间需要低电平并且最少持续10us以上,取消复位需要等到电平置高以后120ms以后 ```c         LCD_RES_Clr();//信号电平从高到低         delay_ms(100);//复位打开延时         LCD_RES_Set();//信号电平从低到高         delay_ms(120);//复位取消延时 ``` 打开背光,因为LCD屏幕本身是不会如同LED屏幕一样发光的将BL位电平置高 ```c         LCD_BLK_Set();//打开背光 ``` 接下来开始进行参数的配置,写数据0x11退出休眠模式 由上图可以知道当处于Sleep Out由于寄存器的下载以及自诊断需要在120ms以后在进行其他的操作 ```c         LCD_WR_REG(0x11); //Sleep out         delay_ms(120);              //Delay 120ms ``` 由上图可知我们的数据位选择的是16bit,所以对于串行信号是如此写入的,cs保持低电平,scl写入数据是为低电平,dc保持低电平为写入命令 ```c void LCD_Writ_Bus(u8 dat) {                u8 i;         LCD_CS_Clr();         for(i=0;i

  • 回复了主题帖: 【国民技术车规MCU N32A455开发板】 spi2问题贴

    哥们移植成功没,我这边出图像了

  • 回复了主题帖: 【国民技术车规MCU N32A455开发板】 spi2问题贴

    尹小舟 发表于 2024-3-6 10:41 我把SPI_FLASH的例程改到SPI2上,结果也无效,添加了GPIO_ConfigPinRemap(GPIO_RMP1_SPI2, ENABLE); 或GPIO ... spi1的时钟路线是APB2,SPI2的话是APB1

  • 回复了主题帖: 【国民技术车规MCU N32A455开发板】 spi2问题贴

    尹小舟 发表于 2024-3-6 10:39 我是使用SPI1  是可以正常显示的, 但是用SPI2 不可以 引脚时钟需要改一下  

  • 回复了主题帖: 【国民技术车规MCU N32A455开发板】 spi2问题贴

    我个人感觉应该是lcd屏初始化的时候出了一点问题,我之前移植其它单片机的时候遇到过,另外他的flash用spi2肯定不行因为这玩意w25q128是通过导线连接在一起的吧

  • 2024-03-02
  • 发表了主题帖: 【国民技术车规MCU N32A455开发板】测评 - 3 - FreeRTOS系统初步移植+简单运行

    # 【国民技术车规MCU N32A455开发板】测评 - 3 - FreeRTOS系统初步移植+简单运行 之前一直在使用FreeRTOS,不过自己从来没有向一个单片机从头新建一个操作系统环境,将自己本次使用这个开发板搭建FreeRTOS的环境的过程记录下来。 ### STEP one: 首先的第一步搭建裸机keil开发环境新建六个文件夹分别是EWARM没用感觉可以删了,firmware文件夹存放一些N32A455单片机的头文件以及一些底层驱动,freertos存放来自freertos的内核代码,MDK—ARM存keil的工程文件,inc和src分别存放main等函数,新建完以后使用keil的project的new project选中MDK—ARM文件夹将在这个文件夹中新建工程。 之后打开keil工程点击manage project itms 进入包管理按照一下进行添入 之后在添加文件夹识别路径,稳妥起步尽量添加每一个文件夹省的到时候找不到 之后调用xTaskCreate创建任务创建三个任务 ```c void start_task(void *pvParameters) {     taskENTER_CRITICAL();           /* 进入临界区 */     /* 创建任务1 */     xTaskCreate((TaskFunction_t )task1,                 /* 任务函数 */                 (const char*    )"task1",               /* 任务名称 */                 (uint16_t       )TASK1_STK_SIZE,        /* 任务堆栈大小 */                 (void*          )NULL,                  /* 传入给任务函数的参数 */                 (UBaseType_t    )TASK1_PRIO,            /* 任务优先级 */                 (TaskHandle_t*  )&Task1Task_Handler);   /* 任务句柄 */     /* 创建任务2 */     xTaskCreate((TaskFunction_t )task2,                 /* 任务函数 */                 (const char*    )"task2",               /* 任务名称 */                 (uint16_t       )TASK2_STK_SIZE,        /* 任务堆栈大小 */                 (void*          )NULL,                  /* 传入给任务函数的参数 */                 (UBaseType_t    )TASK2_PRIO,            /* 任务优先级 */                 (TaskHandle_t*  )&Task2Task_Handler);   /* 任务句柄 */     /* 创建任务3 */     xTaskCreate((TaskFunction_t )task3,                 /* 任务函数 */                 (const char*    )"task3",               /* 任务名称 */                 (uint16_t       )TASK3_STK_SIZE,        /* 任务堆栈大小 */                 (void*          )NULL,                  /* 传入给任务函数的参数 */                 (UBaseType_t    )TASK3_PRIO,            /* 任务优先级 */                 (TaskHandle_t*  )&Task3Task_Handler);   /* 任务句柄 */     vTaskDelete(StartTask_Handler); /* 删除开始任务 */     taskEXIT_CRITICAL();            /* 退出临界区 */ } ``` 通过vTaskStartScheduler();启动 RTOS 调度器 通过vTaskDelay函数取消堵塞多长时间进入一次

  • 2024-02-26
  • 发表了主题帖: 国民技术车规MCU N32A455开发板测评 - 2 - uart串口通讯+mqtt初连百度智能云

    # 国民技术车规MCU N32A455开发板测评 - 2 - uart串口通讯+mqtt初连百度智能云 >你好!这边之前通过阿里智能云社区中的帖子搞过关于stm32f103c8t6连接到百度智能云不过没有很好的记录下来,这次通过这次机会将其完整的记录下来。 编程软件keil5 串口调试工具usb转ttl 串口上位机sscom ## STEP one: >我们首先需要完成的是关于串口的发送以及中断接收 #### 1.串口的初始化 ```c /** * @brief Configures the different system clocks. */ void RCC_Configuration(void) {     /* Enable GPIO clock */     GPIO_APBxClkCmd(USARTx_GPIO_CLK | RCC_APB2_PERIPH_AFIO, ENABLE);     /* Enable USARTy and USARTz Clock */     USART_APBxClkCmd(USARTx_CLK, ENABLE); } ``` >APB2 外设时钟使能寄存器的操作 USARTx_GPIO_CLK所定义的内容是 RCC_APB2_PERIPH_AFIO所定义的内容是 通过查询数据手册可以得知这时钟的第一步是使能GPIO端的A时钟与AFIO时钟 第二步是初始化usart时钟 ```c void GPIO_Configuration(void) {     GPIO_InitType GPIO_InitStructure;//定义引脚初始化结构体     /* Configure USARTy Rx as input floating */     GPIO_InitStructure.Pin       = USARTx_RxPin;//Pa10     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;     GPIO_InitPeripheral(USARTy_GPIO, &GPIO_InitStructure);     /* Configure USARTy Tx as alternate function push-pull */     GPIO_InitStructure.Pin        = USARTx_TxPin;//Pa9     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_PP;     GPIO_InitPeripheral(USARTy_GPIO, &GPIO_InitStructure); } ``` 其中IO的配置在代码中是由GPIO_ModeType这个结构体表示的: ```c typedef enum {     GPIO_Mode_AIN         = 0x0,//模拟模式 0000     GPIO_Mode_IN_FLOATING = 0x04,//浮空输入0100     GPIO_Mode_IPD         = 0x28,//下拉输入1000 0     GPIO_Mode_IPU         = 0x48,//上拉输入1000 1     GPIO_Mode_Out_OD      = 0x14,//开漏输出     GPIO_Mode_Out_PP      = 0x10,//推挽输出     GPIO_Mode_AF_OD       = 0x1C,//复用开漏输出     GPIO_Mode_AF_PP       = 0x18//复用推挽输出 } GPIO_ModeType; ``` 在通过查询手册可知PA9是串口一的TX采用复用推挽输出PA10是串口的RX采用的是浮空输入 ```c /* USARTy and USARTz configuration ------------------------------------------------------*/     USART_InitStructure.BaudRate            = 115200;//串口工作速率设置后期与PC端串口调试工具调试的时候需要对上这个波特率     USART_InitStructure.WordLength          = USART_WL_8B;//发送与接收的数据位数     USART_InitStructure.StopBits            = USART_STPB_1;//停止位     USART_InitStructure.Parity              = USART_PE_NO;//奇偶校验位     USART_InitStructure.HardwareFlowControl = USART_HFCTRL_NONE;//是否开启硬件流控制     USART_InitStructure.Mode                = USART_MODE_RX | USART_MODE_TX;//接收模式开启参数     /* Configure USARTx */     USART_Init(USARTx, &USART_InitStructure);//将所有参数进行输入进行初始化 ``` 串口接收中断的初始化 ```c void NVIC_Configuration(void) {     NVIC_InitType NVIC_InitStructure;     /* Configure the NVIC Preemption Priority Bits */     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);//设置0bit抢占优先级4bit优先级为首要优先级     /* Enable the USARTy Interrupt */     NVIC_InitStructure.NVIC_IRQChannel            = USARTx_IRQn;     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;     NVIC_InitStructure.NVIC_IRQChannelCmd         = ENABLE;     NVIC_Init(&NVIC_InitStructure); } ``` #### 2.串口的发送与接收 发送,通过重写串口发送函数 //串口1发送的重写 ```c //串口1发送的重写 void Usart1_SendByte(u8 val) {                 USART_SendData(USART1, (uint8_t)val);     while (USART_GetFlagStatus(USART1, USART_FLAG_TXDE) == RESET); } void Usart1_SendBuf(u8 *buf,u8 len) {     while(len--)        Usart1_SendByte(*buf++); } void Usart1_SendString(char *str) {     while(*str)        Usart1_SendByte(*str++); } ``` 在while函数中调用结果如下 中断函数中进行中断接收 ```c void USARTx_IRQHandler(void) {         if (USART_GetIntStatus(USART1, USART_INT_RXDNE) != RESET)   {                 rxbuf[RxCounter1++] = USART_ReceiveData(USART1);                 if(rxbuf[RxCounter1] == 0x02 && rxbuf[RxCounter1-1] == 0x20)                 {                         mqtt_flag = 1;                 }                 rxarray[RxCounter1-1] = rxbuf[RxCounter1-1];         }         if(RxCounter1 == 200)         {                 RxCounter1 = 0;         } //        if (RxCounter1 == 100) //        { //                        /* Disable the USARTy Receive interrupt */ //                        USART_ConfigInt(USART1, USART_INT_RXDNE, DISABLE); //        } } ``` 结果如下图 ## STEP tow: ```c //连接热点 u8 wifi_state = 0; void Wifi_Init(void) {         while(wifi_state < 3)         {                 wifi_state = 0;                 if(_net.Init(rxbuf,sizeof(rxbuf),txbuf,sizeof(txbuf))!=0)//如果初始化返回为0的话说明esp8266没有连接好                 {                         wifi_state++;                 }                 if(_net.ConnectAP(WIFI_NAME,WIFI_PASSWD)!=0)//连接热点                 {                         wifi_state++;                 }                 if(_net.ConnectServer("TCP",MQTT_BROKERADDRESS,1883)!=0)//构建TCP通讯线路                 {                         wifi_state++;                 }         } } u8 mqtt_state = 0; void Mqtt_Init(void) {         while(mqtt_state < 2)         {                 mqtt_state = 0;                 _mqtt.Init(rxbuf,sizeof(rxbuf),txbuf,sizeof(txbuf));                 if(_mqtt.Connect(                 MQTT_CLIENTID,  //ClientID                 MQTT_USARNAME,  //Username                 MQTT_PASSWD       //Password                 ) != 0)                 {                         mqtt_state++;                 }                        if(_mqtt.SubscribeTopic(MQTT_SUBSCRIBE_TOPIC,0,1) != 0)                 {                         mqtt_state++;                 }         } } ```

  • 2024-02-19
  • 回复了主题帖: 国民技术车规MCU N32A455开发板测评 - 1 - IO输入输出+板子简单介绍

    nmg 发表于 2024-2-18 18:20 板卡是你的朋友,玩的如何了,继续来分享哈 好的,最近在移植esp8266-s1 wifi模块连接板卡到百度智能云

  • 2024-02-11
  • 回复了主题帖: 国民技术车规MCU N32A455开发板测评 - 1 - IO输入输出+板子简单介绍

    1nnocent 发表于 2024-2-10 21:31 看来ee的坛友都不过年   没有朋友,没事干

  • 2024-02-10
  • 发表了主题帖: 国民技术车规MCU N32A455开发板测评 - 1 - IO输入输出+板子简单介绍

    本帖最后由 裴红恩 于 2024-2-10 20:22 编辑 感谢论坛以及国民技术车规MCU提供的N32A455开发板的试用机会。 STEP 1:板子开箱-N32A455开发板一块+usb转Mini 5p数据线一根   STEP 2:开发板基本情况介绍 Modu 1:Mini母座连接N32G452CCL7单片机,此单片机内部集成有usb通讯接口,作为一个烧写器连接N32A455。(程序烧录调试正常,烧录与调试时候将Boot0连接与GND) Modu 2:N32G452CCL7串口与N32A455烧写口需要短接,以及MCU3.3V以及Modu 4模块中产生的3.3V需短接。 Modu 3:Modu 4模块中产生的3.3V电源以及GND。 Modu 4:MP2359-DJ模块将12V电源转化为5V,ASM1117将5V转化为3.3V以及一个5V到ASM1117的开关(电源模块电压正常) Modu 5:直接可以通过外部的jlink以及其他的烧写器进行程序的烧录与调试。(外部jlink连接烧录正常) Modu 6:五个按键,一个复位按键,一个按键按下连接3.3V,三个按键按下时连接一个电阻到GND。(按键可以正常使用) (温馨提示:烧录程序时记得将Boot改变一下) STEP 3: IO输入输出实现简单的按键控制三色LED变色(依据官方例程更改而来) Modu 1:IO输入采用的是n32a455_gpio头文件中的GPIO_ReadInputDataBit引脚电平读取函数,在LedKeyInit函数中进行引脚的初始化具体如: void LedKeyInit(void) { GPIO_InitType GPIO_InitStructure;//定义引脚初始化结构体 /* Check the parameters */ assert_param(IS_GPIO_ALL_PERIPH(GPIOA)); RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA, ENABLE); GPIO_InitStructure.Pin = GPIO_PIN_0;//引脚名 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//工作模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitPeripheral(GPIOA, &GPIO_InitStructure); } Modu 2:IO口的输出采用的是对寄存器PBC以及PBSC进行操作来改变引脚电平的输出,引脚电平变低通过LedOn,引脚输出变高通过LedOff,LED引脚初始化通过LedInit函数。 /** * [url=home.php?mod=space&uid=159083]@brief[/url] Turns selected Led on. * @param GPIOx x can be A to G to select the GPIO port. * @param Pin This parameter can be GPIO_PIN_0~GPIO_PIN_15. */ void LedOn(GPIO_Module* GPIOx, uint16_t Pin) { GPIOx->PBC = Pin; } /** * @brief Turns selected Led Off. * @param GPIOx x can be A to G to select the GPIO port. * @param Pin This parameter can be GPIO_PIN_0~GPIO_PIN_15. */ void LedOff(GPIO_Module* GPIOx, uint16_t Pin) { GPIOx->PBSC = Pin; } /** * @brief Configures LED GPIO. * @param GPIOx x can be A to G to select the GPIO port. * @param Pin This parameter can be GPIO_PIN_0~GPIO_PIN_15. */ void LedInit(GPIO_Module* GPIOx, uint16_t Pin) { GPIO_InitType GPIO_InitStructure; /* Check the parameters */ assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); /* Enable the GPIO Clock */ if (GPIOx == GPIOA) { RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA, ENABLE); } else if (GPIOx == GPIOB) { RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOB, ENABLE); } else if (GPIOx == GPIOC) { RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOC, ENABLE); } else if (GPIOx == GPIOD) { RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOD, ENABLE); } else if (GPIOx == GPIOE) { RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOE, ENABLE); } else { } /* Configure the GPIO pin */ if (Pin <= GPIO_PIN_ALL) { GPIO_InitStructure.Pin = Pin; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitPeripheral(GPIOx, &GPIO_InitStructure); } }   STEP 3:main函数如下所示 int main(void) { LedInit(PORT_GROUP2, LED1_PIN | LED2_PIN);//初始化led引脚PA11 PA12 LedInit(PORT_GROUP1, LED6_PIN);//初始化led引脚PB10 LedKeyInit();//初始化按键输入引脚PA0 LedOn(PORT_GROUP2, LED1_PIN);//打开红色 LedOff(PORT_GROUP2, LED2_PIN);//关闭绿色 LedOff(PORT_GROUP1, LED6_PIN);//关闭蓝色 while (1) { if(GPIO_ReadInputDataBit(GPIOA, GPIO_PIN_0) == 1 && keyFlag == 1)//获取引脚的电压至并且防止长时间按下变色以及防抖 { Delay(0x28FFFF); if(GPIO_ReadInputDataBit(GPIOA, GPIO_PIN_0) == 1 && keyFlag == 1) { keyFlag = 0;//一次按下不可重复二次进入 ++ledFlag;//色彩变化 if(ledFlag >= 3) { ledFlag = 0; }else{} switch(ledFlag) { case 0: { LedOff(PORT_GROUP2, LED2_PIN); LedOff(PORT_GROUP1, LED6_PIN); LedOn(PORT_GROUP2, LED1_PIN); break; } case 1: { LedOff(PORT_GROUP2, LED1_PIN); LedOff(PORT_GROUP1, LED6_PIN); LedOn(PORT_GROUP2, LED2_PIN); break; } case 2: { LedOff(PORT_GROUP2, LED1_PIN|LED2_PIN); LedOn(PORT_GROUP1, LED6_PIN); break; } default:break; } } }else if(GPIO_ReadInputDataBit(GPIOA, GPIO_PIN_0) == 0 && keyFlag == 0){ keyFlag = 1; }else{} } }      

最近访客

< 1/2 >

统计信息

已有20人来访过

  • 芯积分:64
  • 好友:1
  • 主题:5
  • 回复:16

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言