本文主要對(duì)通過(guò)RT-Thread Studio對(duì)國(guó)民技術(shù)開(kāi)發(fā)板N32L40XCL-STB 進(jìn)行UART外設(shè)配置,實(shí)現(xiàn)開(kāi)發(fā)板串口功能。
1.開(kāi)發(fā)前準(zhǔn)備:
1.1開(kāi)發(fā)環(huán)環(huán)境:RT-Thread Studio(官網(wǎng)下載)
1.2開(kāi)發(fā)板:N32L40XCL-STB 開(kāi)發(fā)板(板載調(diào)試器,也可使用常用的ST-link下載)
1.3環(huán)境配置:下載SDK支持包(這里其它測(cè)評(píng)任務(wù)已有詳細(xì)的說(shuō)明,不在贅述)
1.4國(guó)民技術(shù)產(chǎn)品資料下載FTP訪問(wèn)地址 選擇對(duì)應(yīng)型號(hào)資料下載
2.具體步驟
2.1 點(diǎn)擊文件新建RT-Thread項(xiàng)目選擇基于開(kāi)發(fā)板,配置界面如下
初始化界面代碼如下
#include
#include
#include
/* defined the LED3 pin: PB5 /
#define LED3_PIN GET_PIN(B, 5)
int main(void)
{
/ set LED3 pin mode to output */
rt_pin_mode(LED3_PIN, PIN_MODE_OUTPUT);
while (1)
{
rt_pin_write(LED3_PIN, PIN_HIGH);
rt_thread_mdelay(500);
rt_pin_write(LED3_PIN, PIN_LOW);
rt_thread_mdelay(500);
}
}
UART具體操作函數(shù):
2.2修改添加一下代碼后編譯下載:
#include
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include
#include
rt_device_t dev_usart1;
struct rt_semaphore sem;
rt_thread_t thread;
struct serial_configure u1_configs = RT_SERIAL_CONFIG_DEFAULT;
rt_err_t rx_callback(rt_device_t dev, rt_size_t size)
{
rt_sem_release(&sem);
return RT_EOK;
}
void serial_thread_entry(void *parameter)
{
char buffer;
while(1){
while(rt_device_read(dev_usart1, 0, &buffer, 1) != 1){
rt_sem_take(&sem, RT_WAITING_FOREVER);
}
rt_kprintf("%c",buffer);
}
}
int main(void)
{
rt_err_t ret = 0;
//查找設(shè)備
dev_usart1 = rt_device_find("uart1");
if(dev_usart1 == RT_NULL){
LOG_E("rt_device_find[uart1] failed...n");
// return -EINVAL;
}
//打開(kāi)設(shè)備
ret = rt_device_open(dev_usart1, RT_DEVICE_OFLAG_RDWR|RT_DEVICE_FLAG_INT_RX);
if(ret < 0){
LOG_E("rt_device_open[uart1] failed...n");
return ret;
}
rt_device_control(dev_usart1, RT_DEVICE_CTRL_CONFIG, (void *)&u1_configs); //控制設(shè)備
rt_device_set_rx_indicate(dev_usart1, rx_callback); //設(shè)置回調(diào)函數(shù)
rt_sem_init(&sem,"rx_sem", 0, RT_IPC_FLAG_FIFO); //信號(hào)量初始化
thread = rt_thread_create("dev_usart1",serial_thread_entry , 0, 1024, 10, 5); //創(chuàng)建線程
rt_thread_startup(thread); //啟動(dòng)線程
rt_device_write(dev_usart1, 0, "rt-thread usart testrn", rt_strlen("rt-thread usart testrn")); //串口發(fā)送函數(shù)
return RT_EOK;
}
3.結(jié)果編譯(使用RT-Thread Studio 自帶串口終端工具查看結(jié)果)
心得體會(huì):RT-Thread studio 提供了很多SDK支持包環(huán)境友好,之后還會(huì)用它和其它開(kāi)發(fā)板做更多的嘗試。
-
調(diào)試器
+關(guān)注
關(guān)注
1文章
306瀏覽量
23833 -
PIN管
+關(guān)注
關(guān)注
0文章
36瀏覽量
6375 -
FIFO存儲(chǔ)
+關(guān)注
關(guān)注
0文章
103瀏覽量
6037 -
UART接口
+關(guān)注
關(guān)注
0文章
124瀏覽量
15363 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1305瀏覽量
40387
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
N32L40XCL-STB開(kāi)發(fā)板模塊之UART評(píng)測(cè)
![<b class='flag-5'>N32L40XCL-STB</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>模塊</b><b class='flag-5'>之</b><b class='flag-5'>UART</b><b class='flag-5'>評(píng)測(cè)</b>](https://file1.elecfans.com/web2/M00/90/13/wKgaomTUpKGAH4EjAAEsBLlbTns934.jpg)
N32L43XCL-STB開(kāi)發(fā)板硬件使用手冊(cè)
N32L40XCL-STB開(kāi)發(fā)板硬件使用手冊(cè)
國(guó)民技術(shù)N32G45XCL-STB開(kāi)發(fā)板資料
國(guó)民技術(shù)N32G43XCL-STB開(kāi)發(fā)板資料
N32L40XCL-STB 開(kāi)發(fā)板模塊評(píng)測(cè)任務(wù)大挑戰(zhàn)
N32L40XCL-STB開(kāi)發(fā)板模塊評(píng)測(cè)任務(wù)大挑戰(zhàn)-測(cè)試CAN
![<b class='flag-5'>N32L40XCL-STB</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>模塊</b><b class='flag-5'>評(píng)測(cè)</b><b class='flag-5'>任務(wù)</b>大<b class='flag-5'>挑戰(zhàn)</b>-測(cè)試CAN](https://file1.elecfans.com/web2/M00/90/C2/wKgaomTchHCARrs2AAGL5Ec062I777.jpg)
評(píng)論