- 2025-01-20
-
回复了主题帖:
【测评入围名单(最后1批)】年终回炉:FPGA、AI、高性能MCU、书籍等65个测品邀你来~
个人信息无误,确认可以完成测评计划
- 2025-01-15
-
回复了主题帖:
lt3763电流无法提高
想学硬件和fpga 发表于 2024-11-15 11:01
请问问题解决了吗
嗯,是电源的整体性不行,这边重新布板后将大电流从头到尾都进行了很宽的铺铜就解决了
- 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模块连接板卡到百度智能云